假设我有一个"稀疏"框架如下:
From To X
2010-01-03 2011-05-01 A
2010-05-01 2013-08-09 B
2013-08-09 2013-12-31 C
...
我希望将它合并到一个密集的"所有日期的框架,以便我得到:
Date X
2010-01-03 A
2010-01-04 A
...
2011-04-30 A
2011-05-01 B
2011-05-02 B
...
2013-08-08 B
2013-08-09 C
2013-08-10 C
...
我将如何在熊猫中做到这一点?感谢。
答案 0 :(得分:1)
print df
From To X
0 2010-01-03 2011-05-01 A
1 2010-05-01 2013-08-09 B
2 2013-08-09 2013-12-31 C
#stack df
df = df.set_index('X').stack().reset_index(level=1, drop=True).reset_index()
.rename(columns={0:'date'})
print df
X date
0 A 2010-01-03
1 A 2011-05-01
2 B 2010-05-01
3 B 2013-08-09
4 C 2013-08-09
5 C 2013-12-31
#resample and fill missing data
df = df.groupby('X').apply(lambda x: x.set_index('date')
.resample('D', how='first',fill_method='ffill'))
.reset_index(level=0, drop=True)
print df.head(10)
X
date
2010-01-03 A
2010-01-04 A
2010-01-05 A
2010-01-06 A
2010-01-07 A
2010-01-08 A
2010-01-09 A
2010-01-10 A
2010-01-11 A
2010-01-12 A