PYTHON/PANDAS -在多个索引上重新索引



我有一个类似于下面的数据框架:

test = {"id": ["A", "A", "A", "B", "B", "B"],
"date":    ["09-02-2013", "09-03-2013", "09-05-2013", "09-15-2013", "09-17-2013", "09-18-2013"],
"country": ["Poland", "Poland", "France", "Scotland", "Scotland", "Canada"]}

,我想要一个表返回这个:

<表类>id日期国家tbody><<tr>09-02-2013波兰09-03-2013波兰09-04-2013波兰09-05-2013法国B09-15-2013苏格兰B09-16-2013苏格兰B09-17-2013苏格兰B09-18-2013加拿大

IIUC,您可以生成每个组的date_range,explode,然后mergeffill的值:

out = (test_df
.merge(pd
.to_datetime(test_df['date'], dayfirst=False)
.groupby(test_df['id'])
.apply(lambda g: pd.date_range(g.min(), g.max(), freq='D'))
.explode().dt.strftime('%m-%d-%Y')
.reset_index(name='date'),
how='right'
)
.assign(country=lambda d: d.groupby('id')['country'].ffill())
)

输出:

id        date   country
0  A  09-02-2013    Poland
1  A  09-03-2013    Poland
2  A  09-04-2013    Poland
3  A  09-05-2013    France
4  B  09-15-2013  Scotland
5  B  09-16-2013  Scotland
6  B  09-17-2013  Scotland
7  B  09-18-2013    Canada

相关内容

  • 没有找到相关文章

最新更新