熊猫集团按列名

rha*_*ett 3 python pandas pandas-groupby

我有一个数据框,我们可以通过

df = pd.DataFrame({'a':[1,0,0], 'b':[0,1,0], 'c':[1,0,0], 'd':[2,3,4]})
Run Code Online (Sandbox Code Playgroud)

和一个类别系列

category = pd.Series(['A', 'B', 'B', 'A'], ['a', 'b', 'c', 'd'])
Run Code Online (Sandbox Code Playgroud)

我想将df列的总和分为“ A”,“ B”类别。也许像:

result = df.groupby(??, axis=1).sum()
Run Code Online (Sandbox Code Playgroud)

返回

result = pd.DataFrame({'A':[3,3,4], 'B':[1,1,0]})
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 5

在列上使用groupby+ sumaxis=1此处很重要):

df.groupby(df.columns.map(category.get), axis=1).sum()

   A  B
0  3  1
1  3  1
2  4  0
Run Code Online (Sandbox Code Playgroud)