Python 3.x 如何将多个单元格组合成一个文本с;厄尔

Python 3.x 如何将多个单元格组合成一个文本с;厄尔,python-3.x,pandas,text,Python 3.x,Pandas,Text,我有一个这样的数据帧 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 = ['ite

我有一个这样的数据帧

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.evaluation的平均值,“反馈”是项目df.feedback中的组合单元格 我可以得到两个变量

df1 = df.groupby('item')['appraisal'].mean()
但是如何组合文本单元格呢?我可以将pivot_表项/user和“feedback”作为值,然后添加单元格user1+user2。。。。。 但真正的数据集有许多独特的值,我认为这不是一个最好的决定 thanx如需帮助,您可以使用以下方法:

或者,如果您需要“平坦”DF,请使用
as_index=False
as:


整洁的还有,
groupby(..,as_index=False)
用于平面数据帧,如OP-wanted.nice addition!)
In [4]: df.groupby('item').agg({'appraisal':'mean','feedback':' '.join})
Out[4]:
      appraisal  feedback
item
1             3  good bad
2             2  bad well
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