我有一个Panda的数据框,填充如下所示:
缺失日期的标记将具有上一个标记。所有日期表示该月的最后一个工作日。
这是我尝试做的:
ref_date tag
1/29/2010 1
2/26/2010 3
3/31/2010 4
4/30/2010 4
5/31/2010 1
6/30/2010 3
8/31/2010 1
9/30/2010 4
12/31/2010 2
请注意数据中缺失了几个月份(即7、10、11),我希望通过向前填充的方法填补缺失的数据,使其看起来像这样:
ref_date tag
1/29/2010 1
2/26/2010 3
3/31/2010 4
4/30/2010 4
5/31/2010 1
6/30/2010 3
7/30/2010 3
8/31/2010 1
9/30/2010 4
10/29/2010 4
11/30/2010 4
12/31/2010 2
缺失日期的标记将具有上一个标记。所有日期表示该月的最后一个工作日。
这是我尝试做的:
idx = pd.date_range(start='1/29/2010', end='12/31/2010', freq='BM')
df.ref_date.index = pd.to_datetime(df.ref_date.index)
df = df.reindex(index=[idx], columns=[ref_date], method='ffill')
它给了我错误提示:
类型错误:无法将类型 "Timestamp" 与类型 "int" 进行比较
其中 pd
是 pandas,df
是数据框。
我对 Pandas 数据框不熟悉,所以任何帮助都将不胜感激!
df.ref_date.index = pd.to_datetime(df.ref_date.index)
,应该更像是df.set_index = ...
。 - Yuca