3
我正在努力提取财务数据,其中一些格式为年度,其他为每月。我的模型每月需要全部,因此我需要每个月重复同样的年度值。我一直在使用这个stack post并试图使代码适应我的数据。熊猫将每年转换为每月
这是我的数据帧:
df.head()
date ticker value
0 1999-12-31 ECB/RA6 1.0
1 2000-12-31 ECB/RA6 4.0
2 2001-12-31 ECB/RA6 2.0
3 2002-12-31 ECB/RA6 3.0
4 2003-12-31 ECB/RA6 2.0
这是我的期望的输出前5行:
date ticker value
0 1999-12-31 ECB/RA6 1.0
1 2000-01-31 ECB/RA6 4.0
2 2000-02-28 ECB/RA6 4.0
3 2000-13-31 ECB/RA6 4.0
4 2000-04-30 ECB/RA6 4.0
和我的代码:
df['date'] = pd.to_datetime(df['date'], format='%Y-%m')
df = df.pivot(index='date', columns='ticker')
start_date = df.index.min() - pd.DateOffset(day=1)
end_date = df.index.max() + pd.DateOffset(day=31)
dates = pd.date_range(start_date, end_date, freq='M')
dates.name = 'date'
df = df.reindex(dates, method='ffill')
df = df.stack('ticker')
df = df.sortlevel(level=1)
df = df.reset_index()
然而,它不重复如预期的月份
我得到的错误ValueError异常:不能重新编制一个非唯一索引用的方法或限制 – jKraut
我想原因是我有多个代号,因此日期重复 – jKraut
@jKraut查看更新的帖子 – piRSquared