为缺失值插入数据 pandas python

Interpolating data for missing values pandas python

enter image description here[在此处输入图片描述][2]我在插入缺失值时遇到问题。我正在使用以下代码进行插值

df=pd.read_csv(filename, delimiter=',')
#Interpolating the nan values
df.set_index(df['Date'],inplace=True)
df2=df.interpolate(method='time')

Water=(df2['Water'])
Oil=(df2['Oil'])
Gas=(df2['Gas'])

每当我 运行 我的代码时,我都会收到以下消息:“time-weighted 插值仅适用于具有 DatetimeIndex 的系列或数据帧”

我的数据由带有 header 的几列组成。第一列名为 Date,所有行看起来都与 12/31/2009 相似。我是 python 和一般时间序列的新手。任何提示都会有所帮助。

Sample of CSV file

试试这个,假设您的 csv 的 第一个 列是带有日期字符串的列:

df = pd.read_csv(filename, index_col=0, parse_dates=[0], infer_datetime_format=True)
df2 = df.interpolate(method='time', limit_direction='both')

理论上应该 1) 将您的第一列转换为实际的 datetime 对象,以及 2) 将数据帧的索引设置为该 datetime 列,所有这些都一步完成。您可以选择包含 infer_datetime_format=True 参数。如果您的日期时间格式是标准格式,它可以帮助加快解析速度。

limit_direction='both' 应该回填第一行中的任何 NaN,但是因为您没有提供 copy-paste-able 数据样本,所以我无法确认.

阅读 the documentation 会非常有帮助,通常可以比从 Stack Overflow 获得答案更快地回答问题!