python - 当迭代求和前一个值时,有没有办法在熊猫的应用函数中使用前一行值?还是一种有效的方法?
问题描述
我有一个包含一些列的数据框,我想以有效的方式应用以下转换。
鉴于以下数据框:
C D
===========
Nan 10
0 22
2 280
4 250
6 270
它应该以这样的方式进行转换,我可以获得以下输出:
C D
===========
Nan 10
0 22
2 280
6 252
12 276
注意:
C[i] = C[i] + C[i - 1] + ... + C[0]
和
D[i] = D[i] + C[i - 1]
应过滤 NaN 值。
谢谢!
解决方案
IIUC,您需要:
df['C'] = df['C'].add(df['C'].shift(1).fillna(0))
df['D'] = df['D'].add(df['C'].shift(1).fillna(0))
输出:
C D
0 NaN 10.0
1 0.0 22.0
2 2.0 280.0
3 6.0 252.0
4 10.0 276.0
推荐阅读
- entity-framework-migrations - 如何在 codefirst 模型上启用迁移
- android - 一张使用不同 postkey 上传的图片,但我想将所有图片存储在 Firebase 数据库中的一个 postkey 下
- html - 我有一个图像作为 div 内的背景。我想让图片适合响应式
- python - 无法使用 split_on_silence() 分割音频
- c++ - C++ - 空 std::list begin() 和 end() 不相等
- javascript - AngularJS ng-click 无法正常工作
- lambda - 如何按多个字段分组,结果是列表
- powershell - PowerShell 异常捕获
- java - Jsoup 无法解析查询
- php - 相同名称可用于具有相同模块名称的模块外部控制器