请帮助我。
我想基于1D进行重新采样。我有以下的数据格式,想使用Pandas中的重新采样方法。
我想基于日期和产品重新采样,并填充缺失值。
但是我一直遇到这个错误:我尝试了5种选项后,错误始终只在“instance of”之后更改:我看到了MultiIndex、Index等。
TypeError:必须使用DatetimeIndex、TimedeltaIndex或PeriodIndex才有效,但却得到了“RangeIndex”的实例。
product value date
A 1.52 2016-01-01
A NULL 2016-09-20
A 1.33 2018-08-02
B 1.30 2016-01-01
B NULL 2017-01-02
B 1.54 2017-03-10
B 2.08 2017-06-28
B 2.33 2018-08-02
我将这些数据输入
df.reset_index().set_index('date','sku')
df= df.groupby('product').resample('1D')['value'].ffill().bfill().ffill()
我也尝试了:
df = df.set_index(['date','sku'])
df = df.set_index('date','sku')
df = df.reset_index().set_index(['date','sku'])
请问,你能告诉我我做错了什么吗?谢谢!
今天早上我在处理这些数据,并尝试执行Jezrael给出的指令:
df = df.set_index('date').groupby('product').resample('1D')['value'].ffill()
product value date
0 A 1.52 2016-01-01
1 A NaN 2016-09-20
2 A 1.87 2018-08-02
3 B 2.33 2016-01-01
4 B NaN 2016-09-20
5 B 4.55 2018-08-02
但是突然间不再这样了。 现在错误声明中有索引。
print(df.head())
,它总是返回相同的数据集吗? - jezraeldf['date'] = pd.to_datetime(df['date'])
作为第一步。 - jezrael