我想把相同数据框列中的值(百分比变化)加起来,以便稍后绘制它。最好是将其保存到一个新的数据框架中。我的数据框架看起来像这样:
Date Value 1 Value 2 Value 3 Value 4
2019-10-15 NaN NaN NaN NaN
2019-10-16 -0.000140 -0.001530 -0.005559 -0.008081
2019-10-17 0.006447 0.002043 -0.002396 -0.003360
2019-10-18 -0.006127 -0.001359 -0.003802 -0.007357
2019-10-21 0.003082 0.004424 0.004620 0.008749
我想把每一列加起来,例如,对于Value 4
:
Value 4
-0-008081 (Row 1)
-0,011441 (Row 1 + Row2)
-0,018798 (Row 2 + Row 3)
-0,010049 (Row 3 + Row 4)
我知道转换功能,但还不足以将其用于此目的。
添加:它并不意味着只移动一次数据帧并对值求和。我需要将下一个值添加到shift
之后已经添加的值的结果中您可以移动数据框,并将其添加回原始数据框,您可能需要使用fillna(0)
将NaN
的值替换为零,然后再将数据框相加。
>>> df+df.shift().fillna(0)
Value 1 Value 2 Value 3 Value 4
Date
2019-10-15 NaN NaN NaN NaN
2019-10-16 -0.000140 -0.001530 -0.005559 -0.008081
2019-10-17 0.006307 0.000513 -0.007955 -0.011441
2019-10-18 0.000320 0.000684 -0.006198 -0.010717
2019-10-21 -0.003045 0.003065 0.000818 0.001392
:
根据您的评论,您似乎需要在行轴上使用cumsum
:
>>> df.cumsum()
Value 1 Value 2 Value 3 Value 4
Date
2019-10-15 NaN NaN NaN NaN
2019-10-16 -0.000140 -0.001530 -0.005559 -0.008081
2019-10-17 0.006307 0.000513 -0.007955 -0.011441
2019-10-18 0.000180 -0.000846 -0.011757 -0.018798
2019-10-21 0.003262 0.003578 -0.007137 -0.010049