2016-12-24 71 views
3

我有這樣如何將多個單元格合併到一個單一的文本сell

import pandas as pd 
df = pd.DataFrame({'item': [1, 1,2,2], 
        'user': [1,2,2,1], 
        'appraisal': [4,2,1,3], 
        'feedback' : ['good', 'bad', 'bad', 'well'] 
        }) 
names = ['item', 'user', 'appraisal', 'feedback' ] 
df = df[names] 
df 

一個數據幀我希望得到一個數據幀如下

item appraisal feedback 
0 1  3  good bad 
1 2  2  bad well 

其中「項目」是「項目」,從DF,「評價」是平均df.appraisal的項目和「反饋」被組合從df.feedback的項目 電池我可以得到兩個variales

df1 = df.groupby('item')['appraisal'].mean() 

但如何結合文本單元格?我可以將pivot_table項目/用戶和「feedback」作爲值,然後添加單元格user1 + user2 ..... 但實際數據集有許多獨特的值,我不認爲這是一個最佳決策 thanx幫助

回答

3

您可以使用GroupBy.agg()方法:

In [4]: df.groupby('item').agg({'appraisal':'mean','feedback':' '.join}) 
Out[4]: 
     appraisal feedback 
item 
1    3 good bad 
2    2 bad well 

,或者如果你需要一個 「平」 的東風,用as_index=False@John Galt has recommended

In [5]: df.groupby('item', as_index=False).agg({'appraisal':'mean','feedback':' '.join}) 
Out[5]: 
    item appraisal feedback 
0  1   3 good bad 
1  2   2 bad well 
+2

整潔。並且,'groupby(..,as_index = False)'用於像OP那樣的平面數據幀。 – Zero

+1

@JohnGalt,謝謝!我已將它添加到答案 – MaxU

+0

不錯的添加!) – Edward

相關問題