假设我有一个数据帧df1,它有零和nans:
dates = pd.date_range('20170101',periods=20) df1 = pd.DataFrame(np.random.randint(10,size=(20,3)),index=dates,columns=['foo','bar','see']) df1.iloc[3:12,0] = np.nan df1.iloc[6:17,1] = 0
什么是前进填充zeors和nans的简洁方法?我试过以下:
df1 = (df1.fillna(method='ffill',inplace=True)).replace(to_replace=0,method='ffill') AttributeError: 'nonetype' object has no attribute 'replace'
解决方法
让我们使用replace来替换为nan的零然后填充:
df1.replace(0,pd.np.nan).ffill()
输出:
foo bar see 2017-01-01 2.0 1.0 4 2017-01-02 2.0 2.0 6 2017-01-03 2.0 8.0 3 2017-01-04 2.0 6.0 1 2017-01-05 2.0 8.0 4 2017-01-06 2.0 9.0 6 2017-01-07 2.0 9.0 8 2017-01-08 2.0 9.0 5 2017-01-09 2.0 9.0 8 2017-01-10 2.0 9.0 7 2017-01-11 2.0 9.0 3 2017-01-12 2.0 9.0 6 2017-01-13 5.0 9.0 4 2017-01-14 6.0 9.0 9 2017-01-15 7.0 9.0 4 2017-01-16 6.0 9.0 2 2017-01-17 2.0 9.0 5 2017-01-18 3.0 1.0 1 2017-01-19 3.0 8.0 1 2017-01-20 2.0 5.0 7
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。