使用字典将条目逐行添加到 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)
我正在尝试构建美食类型的词云,并希望将美食的同义词作为字典包含在其计数器中,其中键是美食,值是其同义词列表。例如:
> '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)