首页 > 解决方案 > 在同一数据框列中添加值

问题描述

我想在同一数据框列中添加值(百分比变化)以便稍后绘制。最好的办法是将其保存到一个新的数据框中。我的数据框如下所示:

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)

我知道移位功能,但不足以将其用于此目的。

补充:这并不意味着只移动一次数据框并总结这些值。我需要在班次后将下一个值添加到已经添加的值的结果中

标签: pythonpandasdataframe

解决方案


您可以移动数据框,并将其添加回原始数据框,您可能需要使用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

推荐阅读