如何在 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
我有一个 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