Python pandas数据帧插入缺失的数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python pandas数据帧插入缺失的数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3298字,纯文字阅读大概需要5分钟。
内容图文
![Python pandas数据帧插入缺失的数据](/upload/InfoBanner/zyjiaocheng/698/a9df2d31c91d413dac4fd16a6dbe73f3.jpg)
我有一个如下的数据集.我们只有一个月的最后一天的数据,我试图插入剩余的数据,这是正确的做法吗?
Date Australia China
2011-01-01 NaN NaN
2011-01-02 NaN NaN
- - -
- - -
2011-01-31 4.75 5.81
2011-02-01 NaN NaN
2011-02-02 NaN NaN
- - -
- - -
2011-02-28 4.75 5.81
2011-03-01 NaN NaN
2011-03-02 NaN NaN
- - -
- - -
2011-03-31 4.75 6.06
2011-04-01 NaN NaN
2011-04-02 NaN NaN
- - -
- - -
2011-04-30 4.75 6.06
为了插入此数据帧以查找缺少的NaN值,我使用以下代码
import pandas as pd
df = pd.read_csv("data.csv", index_col="Date")
df.index = pd.DatetimeIndex(df.index)
df.interpolate(method='linear', axis=0).ffill().bfill()
但我得到一个错误“TypeError:无法插入所有NaN.”
这里可能有什么问题,我该如何解决这个问题?
谢谢.
解决方法:
您可以尝试将数据帧转换为浮动astype:
import pandas as pd
df = pd.read_csv("data.csv", index_col=['Date'], parse_dates=['Date'])
print df
Australia China
Date
2011-01-31 4.75 5.81
2011-02-28 4.75 5.81
2011-03-31 4.75 6.06
2011-04-30 4.75 6.06
df = df.reindex(pd.date_range("2011-01-01", "2011-10-31"), fill_value="NaN")
#convert to float
df = df.astype(float)
df = df.interpolate(method='linear', axis=0).ffill().bfill()
print df
Australia China
2011-01-01 4.75 5.81
2011-01-02 4.75 5.81
2011-01-03 4.75 5.81
2011-01-04 4.75 5.81
2011-01-05 4.75 5.81
2011-01-06 4.75 5.81
2011-01-07 4.75 5.81
2011-01-08 4.75 5.81
2011-01-09 4.75 5.81
2011-01-10 4.75 5.81
2011-01-11 4.75 5.81
2011-01-12 4.75 5.81
2011-01-13 4.75 5.81
2011-01-14 4.75 5.81
2011-01-15 4.75 5.81
2011-01-16 4.75 5.81
2011-01-17 4.75 5.81
2011-01-18 4.75 5.81
2011-01-19 4.75 5.81
2011-01-20 4.75 5.81
2011-01-21 4.75 5.81
2011-01-22 4.75 5.81
2011-01-23 4.75 5.81
2011-01-24 4.75 5.81
2011-01-25 4.75 5.81
2011-01-26 4.75 5.81
2011-01-27 4.75 5.81
2011-01-28 4.75 5.81
2011-01-29 4.75 5.81
2011-01-30 4.75 5.81
... ... ...
2011-10-02 4.75 6.06
2011-10-03 4.75 6.06
2011-10-04 4.75 6.06
2011-10-05 4.75 6.06
2011-10-06 4.75 6.06
2011-10-07 4.75 6.06
2011-10-08 4.75 6.06
2011-10-09 4.75 6.06
2011-10-10 4.75 6.06
2011-10-11 4.75 6.06
2011-10-12 4.75 6.06
2011-10-13 4.75 6.06
2011-10-14 4.75 6.06
2011-10-15 4.75 6.06
2011-10-16 4.75 6.06
2011-10-17 4.75 6.06
2011-10-18 4.75 6.06
2011-10-19 4.75 6.06
2011-10-20 4.75 6.06
2011-10-21 4.75 6.06
2011-10-22 4.75 6.06
2011-10-23 4.75 6.06
2011-10-24 4.75 6.06
2011-10-25 4.75 6.06
2011-10-26 4.75 6.06
2011-10-27 4.75 6.06
2011-10-28 4.75 6.06
2011-10-29 4.75 6.06
2011-10-30 4.75 6.06
2011-10-31 4.75 6.06
[304 rows x 2 columns]
你可以省略ffill(),因为NaN只在数据帧的第一行:
df = df.interpolate(method='linear', axis=0).ffill().bfill()
至:
df = df.interpolate(method='linear', axis=0).bfill()
内容总结
以上是互联网集市为您收集整理的Python pandas数据帧插入缺失的数据全部内容,希望文章能够帮你解决Python pandas数据帧插入缺失的数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。