Groupby总和和连接字符串

Groupby总和和连接字符串

本文介绍了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总和和连接字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 17:22