![](/img/trans.png)
[英]Is there a way in Pandas to use previous row value in dataframe.apply when previous value is also calculated in the apply?
[英]Is there a way to use previous row value in pandas' apply function when previous value is iteratively summed ?or an efficient way?
我有一个包含一些列的数据框,我想以有效的方式应用以下转换。
鉴于下面的数据框:
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
df['C'] = df['C'].cumsum()
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 12.0 276.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.