如何将pandas列的值除以另一列

2024-05-23 13:41:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框:

>>> dt
                   COL000   COL001   QT
STK_ID  RPT_Date                       
STK000  20120331   2.6151   2.1467    1
        20120630   4.0589   2.3442    2
        20120930   4.4547   3.9204    3
        20121231   4.1360   3.8559    4
STK001  20120331  -0.2178   0.9184    1
        20120630  -1.9639   0.7900    2
        20120930  -2.9147   1.0189    3
        20121231  -2.5648   2.3743    4
STK002  20120331  -0.6426   0.9543    1
        20120630  -0.3575   1.6085    2
        20120930  -2.3549   0.7174    3
        20121231  -3.4860   1.6324    4

我想让columns值除以'QT'列,有点像这样:

dt =  dt/dt.QT     # pandas does not accept this syntax

所需输出为:

STK_ID  RPT_Date        COL000       COL001  QT
STK000  20120331   2.615110188  2.146655745   1
        20120630   2.029447265  1.172093561   1
        20120930   1.484909881  1.306795608   1
        20121231   1.034008443  0.963970609   1
STK001  20120331  -0.217808111  0.918355842   1
        20120630  -0.981974837  0.394977675   1
        20120930  -0.97157148   0.339633733   1
        20121231  -0.641203355  0.593569537   1
STK002  20120331  -0.642567516  0.954323016   1
        20120630  -0.178759288  0.804230898   1
        20120930  -0.784982521  0.239117442   1
        20121231  -0.871501505  0.408094317   1

怎么做?


Tags: columns数据idpandasdatedtqtrpt
1条回答
网友
1楼 · 发布于 2024-05-23 13:41:08

dv的/运算符似乎等于具有默认轴“列”的div。将轴设置为“索引”,然后它就可以工作了。

df = df.div(df.QT, axis='index')

另一个棘手的方法是先将其转置,再将其分割,然后再将其转置回去:

df = (df.T / df.QT).T

相关问题 更多 >