我的 csv 文件中的数据显示为:
DateTime Temp
10/1/2016 0:00 20.35491156
10/1/2016 1:00 19.75320845
10/1/2016 4:00 17.62411292
10/1/2016 5:00 18.30190001
10/1/2016 6:00 19.37101638
我正在从 csv 文件中读取此文件:
import numpy as np
import pandas as pd
d2 = pd.Series.from_csv(r'C:\PowerCurve.csv')
d3 = d2.interpolate(method='time')
我的目标是使用基于附近值的插值来填充缺失的 2 小时和 3 小时。即每次有缺失数据时,它都应该进行插值。
但是,d3 不显示任何插值。
编辑: 根据下面的建议,我的 Python 2.7 仍然出错。我正在尝试以下操作:
import pandas as pd
d2 = pd.Series.from_csv(r'C:\PowerCurve.csv')
d2.set_index('DateTime').resample('H').interpolate()
错误是:
File "C:\Python27\lib\site-packages\pandas\core\generic.py", line 2672, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'Series' object has no attribute 'set_index'
请您参考如下方法:
使用resample with datetime as index并使用resampling的方法之一适合您的需要。例如:
df.set_index('DateTime').resample('1H').pad()
Out[23]:
Temp
DateTime
2016-10-01 00:00:00 20.354912
2016-10-01 01:00:00 19.753208
2016-10-01 02:00:00 19.753208
2016-10-01 03:00:00 19.753208
2016-10-01 04:00:00 17.624113
2016-10-01 05:00:00 18.301900
2016-10-01 06:00:00 19.371016
