熊猫交叉表中的加权结果

pro*_*der 2 python crosstab scipy pandas statsmodels

我想使用第三列来加权熊猫交叉表中的结果。

例如,以下内容:

import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'bar'],
                   'B': [1, 1, 0, 0, 0],
                   'weight': [2, 3, 4, 5, 6]})
print(pd.crosstab(df.A, df.B))
Run Code Online (Sandbox Code Playgroud)

结果是:

B    0  1
A        
bar  2  1
foo  1  1
Run Code Online (Sandbox Code Playgroud)

我想要的结果是:

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

max*_*moo 5

您可以使用以下aggfunc参数为交叉表提供自定义聚合函数:

pd.crosstab(df.A, df.B, df.weight, aggfunc = sum)
B     0  1
A         
bar  11  3
foo   4  2
Run Code Online (Sandbox Code Playgroud)