每个 class 的 Groupby

Groupby for each class

考虑 table:

Attribute1 ... Class
A ... 1
B ... 0
B ... 1
C ... 0

我想为每个 class 做一个属性 1 的分组,比如:

Attribute Class 1 Class 0
A 1 0
B 1 1
C 0 1

我尝试旋转但收到 ValueError: Grouper for 'class' not 1-dimensional 错误。

如果您的数据框是:

  Attribute1  Class
0          A      1
1          B      0
2          B      1
3          C      0

那么你可以这样做:

print(
    pd.pivot_table(df, index="Attribute1", columns="Class", aggfunc="size")
    .fillna(0)
    .astype(int)
    .add_prefix("Class ")
)

打印:

Class       Class 0  Class 1
Attribute1                  
A                 0        1
B                 1        1
C                 1        0