熊猫合并列重复和总和值

数据挖掘 Python 熊猫 数据框
2021-10-11 04:49:48

如何合并重复列并求和它们的值?

我有的

A   30
A   40
B   50

我需要的

A   70
B   50

这个例子的 DF

d = {'address': ["A", "A", "B"], 'balances': [30, 40, 50]}
df = pd.DataFrame(data=d)
df
2个回答

您可以使用

df2 = df.groupby(['address']).sum()

或者

df2 = df.groupby(['address']).agg('sum')

如果有除此之外的列balances,您只想峰值firstormax值,或者做mean而不是sum,您可以执行以下操作:

d = {'address': ["A", "A", "B"], 'balances': [30, 40, 50], 'sessions': [2, 3, 4]} 
df = pd.DataFrame(data=d) 
df2 = df.groupby(['address']).agg({'balances': 'sum', 'sessions': 'mean'})

那输出

         balances   sessions
address       
A              70       2.5  
B              50       4.0

您可以添加参数以具有as_index = Falsegroupby

  address  balances  sessions
0       A        70       2.5
1       B        50       4.0

在另一种情况下,当您有一个包含多个重复列的数据集并且您不想单独选择它们时,请使用:

df.groupby(by=df.columns, axis=1).sum()