Pandas DataFrame:列总和除以迄今为止行和列的总和

时间:2018-10-18 17:07:18

标签: python pandas

我希望将给定日期的列中值的累加总和除以行和列中值的总和。

我的DataFrame具有以下输入:

            UHIU   FVZJ   VTJS
2000-11-11  0.0000 0.0000 0.0000
2000-11-12  0.0000 0.0000 0.1000
2000-11-13  0.0000 1.0000 0.3000
2000-11-14  0.0000 0.2000 0.0000

预期输出如下:

            UHIU   FVZJ   VTJS
2000-11-11  0.0000 0.0000 0.0000
2000-11-12  0.0000 0.0000 1.0000
2000-11-13  0.0000 0.7143 0.2857
2000-11-14  0.0000 0.7500 0.2500

逻辑原理如下:FVZJ在2000-11-13中的值为1.0000,期望的结果涉及计算FVZJ的值在200-11-11(包括)和2000-11-13(包括)之间的累积和。 )(即1.0000),然后将结果除以2000-11-11(包括)和2000-11-13(包括)(即1.4000)之间的UHIU,FVZJ和VTJS值的累加和。

谢谢

1 个答案:

答案 0 :(得分:1)

IIUC

df.cumsum().div(df.sum(1).cumsum(),0).fillna(0) # notice first row will return NaN, since x/0 mean nothing.
Out[846]: 
            UHIU      FVZJ      VTJS
2000-11-11   0.0  0.000000  0.000000
2000-11-12   0.0  0.000000  1.000000
2000-11-13   0.0  0.714286  0.285714
2000-11-14   0.0  0.750000  0.250000
相关问题