对于这样的季度数据框:
date gdp rate
0 2003/3/1 523.82 0.1
1 2003/6/1 1172.83 0.2
2 2003/9/1 1882.48 0.4
3 2003/12/1 3585.72 0.1
4 2004/3/1 706.77 0.2
我想填补缺失的月份并回补gdp
and rate
每个月,并获取如下数据框:
date gdp rate
0 2003-03 523.82 0.1
1 2003-04 1172.83 0.2
2 2003-05 1172.83 0.2
3 2003-06 1172.83 0.2
4 2003-07 1882.48 0.4
5 2003-08 1882.48 0.4
6 2003-09 1882.48 0.4
7 2003-10 3585.72 0.1
8 2003-11 3585.72 0.1
9 2003-12 3585.72 0.1
10 2004-01 706.77 0.2
11 2004-02 706.77 0.2
12 2004-03 706.77 0.2
我怎样才能在熊猫中做到这一点?谢谢。
另一个解决方案是创建DatetimeIndex
,然后使用DataFrame.asfreq http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.asfreq.html with method='bfill'
and MS
月初和最后一次转换为期间DataFrame.to_period http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_period.html:
df['date'] = pd.to_datetime(df['date'])
df = df.sort_values(by=['date'], ascending=[True])
df.set_index('date', inplace=True)
df = df.asfreq('MS', method='bfill').to_period('M').reset_index()
print (df)
date gdp rate
0 2003-03 523.82 0.1
1 2003-04 1172.83 0.2
2 2003-05 1172.83 0.2
3 2003-06 1172.83 0.2
4 2003-07 1882.48 0.4
5 2003-08 1882.48 0.4
6 2003-09 1882.48 0.4
7 2003-10 3585.72 0.1
8 2003-11 3585.72 0.1
9 2003-12 3585.72 0.1
10 2004-01 706.77 0.2
11 2004-02 706.77 0.2
12 2004-03 706.77 0.2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)