我正在使用Pandas Dataframe,看起来像这样:
0 Data
1
2
3
4 5
5
6
7
8 21
9
10 2
11
12
13
14
15
我试图通过以下有效值填充空白:df.fillna(method =’backfill’).这有效,但后来我需要将自上而下的有效值从下到上添加到下一个有效值,例如:
0 Data
1 28
2 28
3 28
4 28
5 23
6 23
7 23
8 23
9 2
10 2
11
12
13
14
15
我可以通过循环来实现这一点,但是在pandas中有一个方法可以做到这一点吗?
非常感谢!
解决方法:
您可以反转df,然后是fillna(0)
,然后是cumsum
,然后再反转:
In [12]:
df = df[::-1].fillna(0).cumsum()[::-1]
df
Out[12]:
Data
0 28.0
1 28.0
2 28.0
3 28.0
4 23.0
5 23.0
6 23.0
7 23.0
8 2.0
9 2.0
10 0.0
11 0.0
12 0.0
13 0.0
14 0.0
这里我们使用切片表示法来反转df,然后将所有NaN替换为0,执行cumsum并反向返回
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。