Python 如何在数据帧中插值分组时间序列

Python 如何在数据帧中插值分组时间序列,python,pandas,Python,Pandas,我的数据类型为pd.DataFrame,如下所示: type date sum A Jan-1 1 A Jan-3 2 B Feb-1 1 B Feb-2 3 B Feb-5 6 任务是为每种类型构建一个连续的时间序列(缺少的日期应该用0填充) 预期结果是: type date sum A Jan-1 1 A Jan-2 0 A Jan-3 2 B Feb-1 1 B Feb-2 3 B Feb-3

我的数据类型为
pd.DataFrame
,如下所示:

type  date  sum
A     Jan-1 1
A     Jan-3 2
B     Feb-1 1
B     Feb-2 3
B     Feb-5 6
任务是为每种类型构建一个连续的时间序列(缺少的日期应该用0填充)

预期结果是:

type  date  sum
A     Jan-1 1
A     Jan-2 0
A     Jan-3 2
B     Feb-1 1
B     Feb-2 3
B     Feb-3 0
B     Feb-4 0
B     Feb-5 6
使用
pandas
或其他Python工具可以做到这一点吗


真正的数据集有数百万行。

首先必须将日期更改为日期时间,并将该列放入索引中以利用重新采样,然后才能将日期转换回其原始格式

# change to datetime
df['date'] =pd.to_datetime(df.date, format="%b-%d")
df = df.set_index('date')

# resample to fill in missing dates
df1 = df.groupby('type').resample('d')['sum'].asfreq().fillna(0)
df1 = df1.reset_index()

# change back to original date format
df1['date'] = df1.date.dt.strftime('%b-%d')
输出
首先必须将日期更改为datetime,并将该列放入索引中以利用重采样,然后才能将日期转换回其原始格式

# change to datetime
df['date'] =pd.to_datetime(df.date, format="%b-%d")
df = df.set_index('date')

# resample to fill in missing dates
df1 = df.groupby('type').resample('d')['sum'].asfreq().fillna(0)
df1 = df1.reset_index()

# change back to original date format
df1['date'] = df1.date.dt.strftime('%b-%d')
输出
非常感谢你的评论。我得到了这个错误类型错误:仅对DatetimeIndex、TimedeltaIndex或PeriodIndex有效,但在使用
重采样时得到了一个“RangeIndex”实例,您必须拥有错误消息告诉您的这三种索引之一。如果您运行了上面的前两行代码,那么您必须具有DateTimeIndex。非常感谢您的评论。我得到了这个错误类型错误:仅对DatetimeIndex、TimedeltaIndex或PeriodIndex有效,但在使用
重采样时得到了一个“RangeIndex”实例,您必须拥有错误消息告诉您的这三种索引之一。如果运行上面的前两行代码,则必须具有DateTimeIndex。