我希望将给定日期的列中值的累加总和除以行和列中值的总和。
我的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值的累加和。
谢谢
答案 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