获取 pandas 中列的相对值
Getting the relative value of a column in pandas
这是个简单的问题(我猜),但我就是找不到解决方法。
我有一个这样的 pandas 数据集:
ID SCORE REGION COUNT
0 A WEST 855
1 A NORTH 1631
2 A EAST 401
3 A SOUTH 9193
4 B WEST 707
5 B NORTH 1575
6 B EAST 396
7 B SOUTH 6953
8 C WEST 2513
9 C NORTH 5442
10 C EAST 1555
11 C SOUTH 24724
如何创建另一列仅显示每个区域的相对值。例如:对于 A 分数,南部地区占总数的 76,10% (9193/ (855+1631+401+9193))。现在我需要对所有行都这样做。我该怎么做?
谢谢!
df['PERCENT'] = df['COUNT'].groupby(df.SCORE).transform(lambda x: x / x.sum()) * 100
df
ID SCORE REGION COUNT PERCENT
0 0 A WEST 855 7.077815
1 1 A NORTH 1631 13.501656
2 2 A EAST 401 3.319536
3 3 A SOUTH 9193 76.100993
4 4 B WEST 707 7.340878
5 5 B NORTH 1575 16.353442
6 6 B EAST 396 4.111723
7 7 B SOUTH 6953 72.193957
8 8 C WEST 2513 7.340655
9 9 C NORTH 5442 15.896477
10 10 C EAST 1555 4.542268
11 11 C SOUTH 24724 72.220599
这是个简单的问题(我猜),但我就是找不到解决方法。
我有一个这样的 pandas 数据集:
ID SCORE REGION COUNT
0 A WEST 855
1 A NORTH 1631
2 A EAST 401
3 A SOUTH 9193
4 B WEST 707
5 B NORTH 1575
6 B EAST 396
7 B SOUTH 6953
8 C WEST 2513
9 C NORTH 5442
10 C EAST 1555
11 C SOUTH 24724
如何创建另一列仅显示每个区域的相对值。例如:对于 A 分数,南部地区占总数的 76,10% (9193/ (855+1631+401+9193))。现在我需要对所有行都这样做。我该怎么做?
谢谢!
df['PERCENT'] = df['COUNT'].groupby(df.SCORE).transform(lambda x: x / x.sum()) * 100
df
ID SCORE REGION COUNT PERCENT
0 0 A WEST 855 7.077815
1 1 A NORTH 1631 13.501656
2 2 A EAST 401 3.319536
3 3 A SOUTH 9193 76.100993
4 4 B WEST 707 7.340878
5 5 B NORTH 1575 16.353442
6 6 B EAST 396 4.111723
7 7 B SOUTH 6953 72.193957
8 8 C WEST 2513 7.340655
9 9 C NORTH 5442 15.896477
10 10 C EAST 1555 4.542268
11 11 C SOUTH 24724 72.220599