使用字典将条目逐行添加到 pandas DataFrame 中的列

Adding entries to a column in a pandas DataFrame row-by-row using a dictionary

我正在尝试构建美食类型的词云,并希望将美食的同义词作为字典包含在其计数器中,其中键是美食,值是其同义词列表。例如:

> 'Desserts': {'afters', 'sweet', 'dessert'}

我正在使用的 DataFrame 有数千行,但可以使用它生成非常相似的内容(注意:为本练习添加了同义词列):

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'primary_cuisine':['indian','desserts','chinese','american','asian','turkish'],
    'synonyms':['', '', '', '', '', '']
    })

它生成了这个样本:

  primary_cuisine synonyms
0       fast food         
1        desserts         
2         chinese         
3        american         
4           asian         
5         turkish         

我为每种美食生成了同义词列表,如下所示:

word = ''
syn_dict = {}
for cuisine in df['primary_cuisine']:
    synonyms = []
    word = cuisine
    # Store synonyms in a dictionary
    for syn in wn.synsets(word):
        for lm in syn.lemmas():
            synonyms.append(lm.name())
    # Adding values to a key as a set to remove duplicates
    if (len(synonyms) > 0):
        syn_dict[word] = set(synonyms)
    else:
        syn_dict[word] = {}

这是我卡住的地方,我将如何使用字典中的值为每个键编写 DataFrame 的同义词列。任何帮助将不胜感激,任何关于 better/easier 方法来完成我想要完成的事情的建议也将非常棒!如果有帮助,这是我希望实现的(对于上述示例):

  primary_cuisine synonyms
0       fast food 
1        desserts afters, sweet, dessert
2         chinese Chinese, Taiwanese, Formosan
3        american American_language, American_English, American,
4           asian Asian, Asiatic
5         turkish Turkish

您可以像这样使用 .map() 和字典:

dct = {'Desserts': ['afters', 'sweet', 'dessert'}}

df['synonyms'] = df['primary_cuisine'].map(dct)