Aki*_*Omi 1 python group-by pandas pandas-groupby
我有一个像这样的"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
Run Code Online (Sandbox Code Playgroud)
使用此数据集,我希望在行和列中得到总和.在行中,这不是什么大不了的事.我做了这样的结果.
### 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 )
Run Code Online (Sandbox Code Playgroud)
结果是这样的.
A B C D
cat
x 5 7 9 3
y 8 10 12 7
z 11 13 15 11
Run Code Online (Sandbox Code Playgroud)
但我不知道如何编写代码来获得这样的结果.(只需在A列和B列以及C和D列中添加值)
AB CD
J 3 4
K 9 8
L 15 12
M 3 7
N 9 11
O 15 15
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮忙编写代码吗?
顺便说一句,我不想这样做.(它看起来太沉闷,但如果这是唯一的方式,我会认为它)
df2 = df['A'] + df['B']
df3 = df['C'] + df['D']
df = pd.DataFrame([df2,df3],index=['AB','CD']).transpose()
print( df )
Run Code Online (Sandbox Code Playgroud)
传递字典或可调用时,groupby它将应用于轴.我指定了一个是列的轴.
d = dict(A='AB', B='AB', C='CD', D='CD')
df.groupby(d, axis=1).sum()
Run Code Online (Sandbox Code Playgroud)