繁体   English   中英

在熊猫数据框中重新索引多索引

[英]Reindexing a multiindex in pandas dataframe

我正在尝试重新索引2级多索引熊猫数据框。 数据结构如下所示:

In [1]: df.head(5)


Out [1]:                                arrivals    departs
station         datetime
S1              2014-03-03 07:45:00     1           1
                2014-03-03 09:00:00     2           1
                2014-03-03 11:45:00     1           1
                2014-03-04 08:45:00     1           1
                2014-03-04 09:45:00     2           1

我想以15分钟的间隔来填充datetime时间间隔,但是当我打电话时

In [2]: df.reindex(pd.date_range(start='2014-03-03 07:45:00', 
                   end='2014-03-04 07:45:00', freq='15min'), level=1)

我得到完全相同的数据框。 我期望以下内容

Out [2]:                                arrivals    departs
station         datetime
S1              2014-03-03 07:45:00     1           1 <-- original row
                2014-03-03 08:00:00     0           0 <-- filled in row
                2014-03-03 08:15:00     0           0 <-- filled in
                2014-03-03 08:30:00     0           0 <-- filled in
                2014-03-03 08:45:00     0           0 <-- filled in
                2014-03-03 09:00:00     2           1 <-- original
                etc...

有任何想法吗?

将其转换为简单的datetimeindex并填补空白:

df = (df.unstack(level=0)
        .reindex(pd.date_range(start='2014-03-03 07:45:00', 
                   end='2014-03-04 07:45:00', freq='15min')))


df = df.fillna(0)  # for the data, 0 is the desired value

df.stack('station').swaplevel(0,1).sort_index()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM