【发布时间】:2018-09-10 11:12:37
【问题描述】:
我有一个现有的数据框 (coffee_directions_df),如下所示
coffee_directions_df
Utterance Frequency
Directions to Starbucks 1045
Directions to Tullys 1034
Give me directions to Tullys 986
Directions to Seattles Best 875
Show me directions to Dunkin 812
Directions to Daily Dozen 789
Show me directions to Starbucks 754
Give me directions to Dunkin 612
Navigate me to Seattles Best 498
Display navigation to Starbucks 376
Direct me to Starbucks 201
DF 显示人们发出的话语和话语的频率。
即“去星巴克的路线”被说出了 1045 次。
我试图弄清楚如何将coffee_directions_df.Utterance 列中的类似词(例如“Starbucks”、“Tullys”、“Seattles Best”)替换为一个字符串,例如“Coffee”。我看过类似的答案,建议使用字典,如下所示,但我还没有成功。
{'Utterance':['Starbucks','Tullys','Seattles Best'],
'Combi_Utterance':['Coffee','Coffee','Coffee','Coffee']}
{'Utterance':['Dunkin','Daily Dozen'],
'Combi_Utterance':['Donut','Donut']}
{'Utterance':['Give me','Show me','Navigate me','Direct me'],
'Combi_Utterance':['V_me','V_me','V_me','V_me']}
想要的输出如下:
coffee_directions_df
Utterance Frequency Combi_Utterance
Directions to Starbucks 1045 Directions to Coffee
Directions to Tullys 1034 Directions to Coffee
Give me directions to Tullys 986 V_me to Coffee
Directions to Seattles Best 875 Directions to Coffee
Show me directions to Dunkin 812 V_me to Donut
Directions to Daily Dozen 789 Directions to Donut
Show me directions to Starbucks 754 V_me to Coffee
Give me directions to Dunkin 612 V_me to Donut
Navigate me to Seattles Best 498 V_me to Coffee
Display navigation to Starbucks 376 Display navigation to Coffee
Direct me to Starbucks 201 V_me to Coffee
最终,我希望能够使用我必须生成最终输出的代码。
df = (df.set_index('Frequency')['Utterance']
.str.split(expand=True)
.stack()
.reset_index(name='Words')
.groupby('Words', as_index=False)['Frequency'].sum()
)
print (df)
Words Frequency
0 Directions 6907
1 V_me 3863
2 Donut 2213
3 Coffee 5769
4 Other 376
谢谢!!
【问题讨论】:
标签: python pandas dataframe statistics apply