Pandas 熊猫时间序列的interp1d

Pandas 熊猫时间序列的interp1d,pandas,scipy,Pandas,Scipy,我想在时间序列中的时间之间进行插值。我想使用scipy.interpolate.interp1d(或类似工具)。pandas.interpolate函数是不可取的,因为它需要插入nan值,然后使用插值替换它们(从而修改数据集)。我想做的是: from datetime import datetime import scipy.interpolate as si import pandas as pd d1 = datetime(2019, 1, 1) d2 = datetime(2019, 1,

我想在时间序列中的时间之间进行插值。我想使用scipy.interpolate.interp1d(或类似工具)。
pandas.interpolate
函数是不可取的,因为它需要插入
nan
值,然后使用插值替换它们(从而修改数据集)。我想做的是:

from datetime import datetime
import scipy.interpolate as si
import pandas as pd
d1 = datetime(2019, 1, 1)
d2 = datetime(2019, 1, 5)
d3 = datetime(2019, 1, 10)
df = pd.DataFrame([1, 4, 2], index=[d1, d2, d3], columns=['conc'])
import scipy.interpolate as si
f = si.interp1d(df.index, df.conc)
f(datetime(2019, 1, 3))

直到最后一行,我得到一个
ValueError:不支持对象数组
。奇怪的是,
f.x
很好地将日期显示为
dtype='datetime64[ns]
,所以我希望它能工作。有人知道如何让它工作吗?

这是可行的,但可以说有点难看:

f = si.interp1d(pd.to_numeric(df.index), df.conc)
f(pd.to_numeric(pd.to_datetime(['2019-1-3'])))

您需要将插值点
datetime(2019,1,3)
转换为
datetime64[ns]
该错误令人困惑,但实际上并不误导
f(np.datetime64(datetime(2019,1,3))
给出了
类型错误:无效的类型提升
奇数<代码>np.datetime64(日期时间(2019,1,3))和
np.datetime64(日期时间(2019,1,3),'ns')
都不是问题。Lemme check
f(pd.to_datetime('2019-1-3'))
给出
ValueError:再次不支持对象数组。我是否正在尝试做一些未实现的事情?还是我做错了?