2017-05-02 38 views
-2

我有一個數據幀,看起來像這樣:在id如何將熊貓數據框中的前2個單詞分組並計數?

dfx = pd.DataFrame({'id' : ['blue apple werewolf', 'blue apple cat', 
'yellow tangerine','blue apple dog', 'orange dog nectarine','black', 'green apple cat'] }) 

我想通過組每行第2個字,並返回與這兩個詞開始的項目數。如果列值不包含2個單詞,則只應計算第一個單詞。

因此產生的數據幀應該是這樣的:

ID    COUNT 
blue apple   3 
yellow tangerine 1 
orange dog   1 
green apple  1 
black    1 

任何幫助嗎?

回答

2

,你應該能夠使用提取得到它:

dfx = pd.DataFrame({'id' : ['blue apple werewolf', 'blue apple cat', 
'yellow tangerine','blue apple dog', 'orange dog nectarine','black', 'green apple cat'] }) 

dfx.groupby(dfx.id.str.extract('([^\ ]+[\ ]*[^\ ]*)',expand=False)).count().sort_values('id',ascending =False).rename(columns={'id':'COUNT'}).reset_index() 
+0

謝謝,這是接近。但它在第一列中添加了「id」作爲表值,結果不按照我提供的示例結果排序。 – samthebrand

+0

調整後,這個問題在這個問題中沒有明確提及,它很容易擴展,請在提出更多問題時參考http://stackoverflow.com/help/how-to-ask – lsalamon