python - Python用以前的值填充NaN
问题描述
嗨,我在NaN
用以前的值填充数据框时遇到问题,我已将 csv 导入数据框stock_store
并创建了一个新的 dfdata[]
和以下代码:
# Import csv to df 'stock_store[]'
stock_store=pd.read_csv('HKEX-01128.csv',parse_dates=['Date'], index_col=['Date'])
data["D-Chg"]=stock_store['Adj Close'] - stock_store['Adj Close'].shift(1, freq='B')
data["D-Chg"].replace('NaN',np.NaN).fillna('pad')
print(data["D-Chg"].head(100))
Date
2009-10-09 NaN
2009-10-12 -0.049069
2009-10-13 0.122673
2009-10-14 0.110408
2009-10-15 -0.429356
2009-10-16 0.159474
2009-10-19 -0.036801
2009-10-20 0.061336
2009-10-21 0.000000
2009-10-22 -0.208543
2009-10-23 -0.110407
2009-10-27 NaN
2009-10-28 -0.423221
2009-10-29 -0.012268
它不起作用,因为 Nan 仍然出现。我尝试过其他方法,例如data["D-Chg"].fillna(method='ffill')
或data[["D-Chg"]==""]=np.NaN
两者都不起作用。
谢谢
JC
解决方案
如评论中所述,只需将结果分配给所选列:
data["D-Chg"] = data["D-Chg"].fillna(method='ffill')
请注意,使用此方法,第一个元素不会获得非 NaN 值。您将需要手动设置它。
推荐阅读
- javascript - 在chartjs中,在工具提示上添加链接文本
- adobe - 如何将 Adobe Captivate XApi 课程与 YetAnalytics 或 LRS(学习记录系统)连接起来?
- reactjs - 在反应中获取输入列表的值
- python - django中的like按钮在django中无法正常工作
- google-bigquery - BigQuery 是否可以舍入 PERCENT_RANK() 输出
- flutter - 选择选项卡时的 TabBar 图标颜色
- javascript - 使用 JavaScript 中的 XMLHttpRequest Get 方法将可变数据发送到服务器?
- wordpress - 使用 Nginx 通过博客域仅提供 Wordpress API
- angular - angular 8 两次加载应用程序资产
- python-3.x - python2和python3的区别