python - 在同一数据框列中添加值
问题描述
我想在同一数据框列中添加值(百分比变化)以便稍后绘制。最好的办法是将其保存到一个新的数据框中。我的数据框如下所示:
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)
我知道移位功能,但不足以将其用于此目的。
补充:这并不意味着只移动一次数据框并总结这些值。我需要在班次后将下一个值添加到已经添加的值的结果中
解决方案
您可以移动数据框,并将其添加回原始数据框,您可能需要使用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
推荐阅读
- laravel - 将数据从一个控制器传递到另一个控制器 laravel
- c# - 选中时连接 checkbox.text
- c# - 正则表达式拆分并合并为单个记录
- python - 如何修改python函数文档字符串并写入python文件
- vue.js - Nuxt / Vue JS - 为 Markdown 文件编写 HTML 模板
- java - Android Powermockito 如何模拟吐司
- python - 如何在不使用 python 中的 pandas 的情况下将查询结果保存到 csv 文件中?
- python-3.x - 如何在用新数据填充之前在管理命令中清空 Django 表的所有内容
- mysql - 仅针对具有相同“id”的行获取两个表之间的时间差 - MySQL
- go - 基于线性时间的多个标准的切片中的广义计数元素