微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – DataFrame:fillna(),其中包含有效值的运行总和

我正在使用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] 举报,一经查实,本站将立刻删除。

相关推荐