如何在 Excel 中使用 pandas 中的 pivot table 函数中的分组功能?

How to use grouping feature in Excel pivot table function in pandas?

我有一个 pandas 数据框。

id Score Action_flag
S11 0.585366 Not Traded
P555 0.457778 Not Traded
B28 0.636154 Not Traded
A859 0.000000 Traded
P556 0.761905 Not Traded
Y461 0.333333 Not Traded
S121 0.444444 Not Traded
K481 0.000000 Traded
S122 1.000000 Not Traded
R556 0.000000 Traded
R627 0.602778 Traded

在 excel 中使用枢轴 table 和分组我能够做到这一点。

如何使用 pandas

实现此目的

和枢轴table

IIUC,您可以使用 pd.cut 创建容器,然后使用 crosstab 获取每个操作标志的计数。最后,assign row-wise 总计到一个新列“Grand_total”:

out = pd.crosstab(pd.cut(df['Score'], np.linspace(0,1,21), include_lowest=True), df['Action_flag']).assign(Grand_total=lambda x: x.sum(axis=1))

输出:

Action_flag     Not Traded  Traded  Grand_total
Score                                          
(-0.001, 0.05]           0       3            3
(0.3, 0.35]              1       0            1
(0.4, 0.45]              1       0            1
(0.45, 0.5]              1       0            1
(0.55, 0.6]              1       0            1
(0.6, 0.65]              1       1            2
(0.75, 0.8]              1       0            1
(0.95, 1.0]              1       0            1