Python 熊猫重采样器插值不正确
我正在处理一个熊猫系列,我想对这些数据进行重采样,以获得10秒的间隔。我正在处理的系列:Python 熊猫重采样器插值不正确,python,pandas,series,Python,Pandas,Series,我正在处理一个熊猫系列,我想对这些数据进行重采样,以获得10秒的间隔。我正在处理的系列: volSeries.head(20) Time 2018-10-14 12:00:00 6.0 2018-10-14 12:00:02 5.0 2018-10-14 12:02:32 6.0 2018-10-14 12:02:57 5.0 2018-10-14 12:03:22 6.0 2018-10-14 12:03:27 5.0 2018-10-14 12:17:4
volSeries.head(20)
Time
2018-10-14 12:00:00 6.0
2018-10-14 12:00:02 5.0
2018-10-14 12:02:32 6.0
2018-10-14 12:02:57 5.0
2018-10-14 12:03:22 6.0
2018-10-14 12:03:27 5.0
2018-10-14 12:17:42 6.0
2018-10-14 12:17:47 5.0
2018-10-14 12:17:57 5.0
2018-10-14 12:18:07 6.0
2018-10-14 12:18:12 5.0
2018-10-14 12:18:17 6.0
2018-10-14 12:18:32 5.0
2018-10-14 12:18:47 6.0
2018-10-14 12:18:57 5.0
2018-10-14 12:19:27 6.0
2018-10-14 12:19:37 5.0
2018-10-14 12:20:37 6.0
2018-10-14 12:20:57 5.0
2018-10-14 12:21:07 6.0
Name: Value, dtype: float64
当我尝试重新采样时,输出线性增加,与数据不匹配:
volumeResampler = volSeries.resample('10S')
resampledVolumeData = volumeResampler.interpolate('linear')
resampledVolumeData.head(20)
Time
2018-10-14 12:00:00 6.000000
2018-10-14 12:00:10 6.198148
2018-10-14 12:00:20 6.396296
2018-10-14 12:00:30 6.594444
2018-10-14 12:00:40 6.792593
2018-10-14 12:00:50 6.990741
2018-10-14 12:01:00 7.188889
2018-10-14 12:01:10 7.387037
2018-10-14 12:01:20 7.585185
2018-10-14 12:01:30 7.783333
2018-10-14 12:01:40 7.981481
2018-10-14 12:01:50 8.179630
2018-10-14 12:02:00 8.377778
2018-10-14 12:02:10 8.575926
2018-10-14 12:02:20 8.774074
2018-10-14 12:02:30 8.972222
2018-10-14 12:02:40 9.170370
2018-10-14 12:02:50 9.368519
2018-10-14 12:03:00 9.566667
2018-10-14 12:03:10 9.764815
Freq: 10S, Name: Value, dtype: float64
在比较重采样前后的图形时,可以看到它显然没有正确插值
重新采样前:
重新采样后:
误差似乎与我插值的频率有关。我插值的值的间距不一致,相邻点之间的最小间距为2秒,最大间距为37080秒
如果我在任何位置重新采样如果您希望使用频率窗口之外的值进行插值,您可以在初始数据帧中插入所需频率,对其进行排序,然后进行插值,然后仅选择所需精确频率的值: 从示例中,更改结束日期 sample=pd.DataFrame { “时间”:pd.date\u范围 “2018-10-14 12:00:00”,“2018-10-14 12:22:00”,频率为10秒 } df= 海螺 [ volSeries.to_框架, 样品 ], sort=False, .sort_值['time'] .drop_duplicateSubset=['time'] .设置索引“时间” .插入“索引” .loc[样本['time'].值:] 这使得:
volume
time
2018-10-14 12:00:00 6.000000
2018-10-14 12:00:10 5.053333
2018-10-14 12:00:20 5.120000
2018-10-14 12:00:30 5.186667
2018-10-14 12:00:40 5.253333
2018-10-14 12:00:50 5.320000
2018-10-14 12:01:00 5.386667
2018-10-14 12:01:10 5.453333
2018-10-14 12:01:20 5.520000
2018-10-14 12:01:30 5.586667
2018-10-14 12:01:40 5.653333
2018-10-14 12:01:50 5.720000
2018-10-14 12:02:00 5.786667
2018-10-14 12:02:10 5.853333
2018-10-14 12:02:20 5.920000
2018-10-14 12:02:30 5.986667
2018-10-14 12:02:40 5.680000
2018-10-14 12:02:50 5.280000
2018-10-14 12:03:00 5.120000
2018-10-14 12:03:10 5.520000
在我的电脑上显示所有6个似乎都很好。你的预期输出是什么?我的意思是,你能分享你预期产出的样本数据吗?有一个选项interpolatemethod='index'