如何转换以下输入数据(从Excel文件输入的Pandas数据帧):
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 因此,基本上我想按类别分组,连接扬声器,但不是聚合价格。
我尝试了Pandas dataframe.groupby()和.agg()的不同方法,但都无济于事。也许有更简单的纯Python解决方案?
发布于 2018-08-01 21:11:12
有两种可能的解决方案-按多列聚合和join
dataframe.groupby(['ID','Category','Price'])['Speaker'].apply(','.join)或者只需要聚合Price列,则需要按first或last聚合所有列
dataframe.groupby('Price').agg({'Speaker':','.join, 'ID':'first', 'Price':'first'})发布于 2018-08-01 21:16:41
尝尝这个
df.groupby(['ID','Category'],as_index=False).agg(lambda x : x if x.dtype=='int64' else ', '.join(x))https://stackoverflow.com/questions/51634152
复制相似问题