Python Pandas:Groupby总和和连接字符串
问题内容:
熊猫数据框示例:
ID名称COMMENT1 COMMENT2 NUM
1 dan hi hello 1
1个你的朋友2
3乔恩不是3
2乔恩狗猫.5
3乔恩是否.1
我正在尝试创建一个按ID和NAME分组的数据框,该数据框将COMMENT1和COMMENT2(也总计NUM)连接起来。
这就是我要寻找的:
ID名称COMMENT1 COMMENT2 NUM
1 dan hi you hello friend 3
3乔恩是是否3.1
2乔恩狗猫.5
我尝试使用此:
input_df = input_df.groupby(['ID', 'NAME', 'COMMENT1', 'COMMENT2']).sum().reset_index()
但这是行不通的。
如果我使用这个:
input_df = input_df.groupby(['ID']).sum().reset_index()
它对NUM列求和,但不包括所有其他列。
问题答案:
让我们合而为一
df.groupby(['ID','Name'],as_index=False).agg(lambda x : x.sum() if x.dtype=='float64' else ' '.join(x))
Out[1510]:
ID Name COMMENT1 COMMENT2 NUM
0 1 dan hi you hello friend 3.0
1 2 jon dog cat 0.5
2 3 jon yeah yes nope no 3.1