如何打开以下输入数据(从Excel文件馈送的熊猫数据框):
ID Category Speaker Price
334014 Real Estate Perspectives Tom Smith 100
334014 E&E Tom Smith 200
334014 Real Estate Perspectives Janet Brown 100
334014 E&E Janet Brown 200
对此:
ID Category Speaker Price
334014 Real Estate Perspectives Tom Smith, Janet Brown 100
334014 E&E Tom Smith, Janet Brown 200
因此,我基本上希望按类别分组,将发言人连接起来,但不要合计价格。
我用熊猫dataframe.groupby()
和.agg()
尝试了不同的方法,但都无济于事。也许有更简单的纯Python解决方案?
答案 0 :(得分:4)
有2种可能的解决方案-通过多列和join
进行汇总:
dataframe.groupby(['ID','Category','Price'])['Speaker'].apply(','.join)
或者只需要汇总Price
列,然后必须按first
或last
汇总所有列:
dataframe.groupby('Price').agg({'Speaker':','.join, 'ID':'first', 'Price':'first'})
答案 1 :(得分:0)
尝试一下
df.groupby(['ID','Category'],as_index=False).agg(lambda x : x if x.dtype=='int64' else ', '.join(x))