Skip to main content
 首页 » 编程设计

python之Pandas : Sum multiple columns and get results in multiple columns

2025年05月04日10yyy_WW

我有一个像这样的“sample.txt”。

idx A   B   C   D   cat 
J   1   2   3   1   x 
K   4   5   6   2   x 
L   7   8   9   3   y 
M   1   2   3   4   y 
N   4   5   6   5   z 
O   7   8   9   6   z 

有了这个数据集,我想得到行和列的总和。 在行中,这没什么大不了的。 我做了这样的结果。

### MY CODE ### 
import pandas as pd 
 
df = pd.read_csv('sample.txt',sep="\t",index_col='idx') 
df.info() 
 
df2 = df.groupby('cat').sum() 
print( df2 ) 

结果是这样的

      A   B   C   D 
cat                 
x     5   7   9   3 
y     8  10  12   7 
z    11  13  15  11 

但我不知道如何编写代码来获得这样的结果。 (只需在 A 和 B 列以及 C 和 D 列中添加值)

    AB  CD 
J   3   4 
K   9   8 
L   15  12 
M   3   7 
N   9   11 
O   15  15 

谁能帮忙写个代码?

顺便说一句,我不想​​这样做。 (这看起来太无聊了,但如果这是唯一的方法,我会认为它)

df2 = df['A'] + df['B'] 
df3 = df['C'] + df['D'] 
df = pd.DataFrame([df2,df3],index=['AB','CD']).transpose() 
print( df ) 

请您参考如下方法:

当您将字典或可调用对象传递给 groupby 时,它会应用于轴。我指定了轴一,它是列。

d = dict(A='AB', B='AB', C='CD', D='CD') 
df.groupby(d, axis=1).sum()