用样条法对熊猫进行升采样和插值分组

时间:2020-02-05 21:35:58

标签: python pandas pandas-groupby interpolation

我从测量数据中得到了一个分组的时间序列,如下所示。

time value1 value2 value3 run_id
19 00:00:00 14.45 1000.0 5.800000 19 00:00:00.010000 14.45 1000.0 5.591578 19 00:00:00.020000 14.45 1000.0 5.878844 19 00:00:00.030000 14.45 1000.0 5.974964 19 00:00:00.040000 14.45 1000.0 5.643659 ... ... ... ... ... 20 00:00:00.647290 17.46 1500.0 5.695907

我现在想使用以下代码将采样率从0.01s增加到0.001s。

for name, group in data.groupby('run_id'): temp = group.reset_index().set_index('time').resample('0.001S').interpolate(method='spline', order=2)

这将在以下异常中结束。

numpy.core._exceptions.UFuncTypeError: Cannot cast ufunc 'greater' input 1 from dtype('float64') to dtype('<m8[ns]') with casting rule 'same_kind'

选择这样的下采样频率。

temp = group.reset_index().set_index('time').resample('0.02S').interpolate(method='spline', order=2)

它似乎正在工作。如果将插值方法更改为线性,则向上采样有效。

temp = group.reset_index().set_index('time').resample('0.02S').interpolate(method='linear')

我在这里做错了什么?

我还尝试了一种将重采样直接应用于groupby对象的方法。

data.reset_index().set_index('time').groupby('run_id').resample('0.001S').interpolate(method='linear')

这有意义吗?还是我需要在这里套用apply()方法?

0 个答案:

没有答案