我正在分析一些按州汇总的联邦数据。行标签是状态名称,列标签是方面标签。单元格值是总体计数。这个df看起来像:
+---------------------------------------+
| f1 f2 |
| Alabama 127 321 |
| Alaska 84 12 |
| Arizona 295 12 |
| Arkansas 82 71 |
+---------------------------------------+
我有另一个数据帧,其中的行也是状态名,但单列是该状态的总体。这个df看起来像:
+--------------------------------+
| Counts|
| Alabama 146 |
| Alaska 89 |
| Arizona 314 |
| Arkansas 85 |
+--------------------------------+
我想将第一个数据帧中的每一列除以第二个数据帧的值。这使各州的发病率数据按人口标准化。
我怎样才能在熊猫身上做到这一点?我对蟒蛇很有经验,但我是熊猫新手,搞不懂。
TIA,Travis
将.div
与axis=0
:一起使用
>>> left
f1 f2
Alabama 127 321
Alaska 84 12
Arizona 295 12
Arkansas 82 71
>>> right
Counts
Alabama 146
Alaska 89
Arizona 314
Arkansas 85
>>> left.div(right['Counts'], axis=0)
f1 f2
Alabama 0.870 2.199
Alaska 0.944 0.135
Arizona 0.939 0.038
Arkansas 0.965 0.835
请注意,这将右手边与左手边的索引对齐,因此下面的结果与上面的结果相同:
>>> left.div(right.loc[::-1, 'Counts'], axis=0) # permute the indices
f1 f2
Alabama 0.870 2.199
Alaska 0.944 0.135
Arizona 0.939 0.038
Arkansas 0.965 0.835