Skip to main content
 首页 » 编程设计

Python pandas插值系列

2025年05月04日24zdz8207

我的 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