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