有没有一种方法可以使用groupby.sum并保留其他列?

时间:2020-01-10 17:28:33

标签: python-3.x pandas dataframe pandas-groupby data-analysis

假设我有一个文本文件〜40列,并且 我需要使用5列来删除重复项/组。

0    1    2    3    4      5     6
a    b    c    d    123    5     h
r    b    c    d    123    15    0
a    b    c    d    456    12    v
g    h    c    t    456    4     h

我想要groupbydf.drop_duplicates()

df = df.groupby([1,2,4])[5].sum().reset_index()

所以结果就像

1   2   4     5
b   c   123   20
b   c   456   12
h   c   456   4

有没有办法让其他列进入此结果数据,因为不希望它们成为groupby条件?

1 个答案:

答案 0 :(得分:1)

您可以按列划分,同时使用transform保留其他列:

df['sum'] = df.groupby([1,2,4])[5].transform(sum)

这将仅添加一列,该列具有针对原始数据帧中所有行的分组级别的聚合。