使用来自不同数据帧的数据标准化数据帧中的数据

时间:2014-10-23 23:26:27

标签: python pandas

我正在分析一些逐州汇总的联邦数据。行标签是州名,列标签是构面标签。单元格值是人口计数。这个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, 特拉维斯

1 个答案:

答案 0 :(得分:1)

.divaxis=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