本文介绍了Python Pandas:Groupby总和和连接字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
熊猫数据框示例:
ID Name COMMENT1 COMMENT2 NUM
1 dan hi hello 1
1 dan you friend 2
3 jon yeah nope 3
2 jon dog cat .5
3 jon yes no .1
我正在尝试创建一个按ID和NAME分组的数据框,该数据框将COMMENT1和COMMENT2(还总计NUM)连接起来.
I am trying to create a dataframe that groups by ID and NAME that concatenates COMMENT1 and COMMENT2 that also sums NUM.
这就是我要寻找的:
ID Name COMMENT1 COMMENT2 NUM
1 dan hi you hello friend 3
3 jon yeah yes nope no 3.1
2 jon dog cat .5
我尝试使用这个:
input_df = input_df.groupby(['ID', 'NAME', 'COMMENT1', 'COMMENT2']).sum().reset_index()
但这是行不通的.
如果我使用这个:
input_df = input_df.groupby(['ID']).sum().reset_index()
它对NUM列求和,但不包括所有其他列.
It sums the NUM column but leaves out all other columns.
推荐答案
让我们将其设置为一行
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
这篇关于Python Pandas:Groupby总和和连接字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!