将pandas multiindex折叠为单个索引 [英] Collapse pandas multiindex to a single index

查看:245
本文介绍了将pandas multiindex折叠为单个索引的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个多索引的Pandas数据框,如下所示:

I have a multi-indexed Pandas dataframe that looks like this:

如何将三层索引合并为一个索引?即,我想将(1987,1,2)转换为pd.datetime(1987,1,2).我更喜欢使用df.index.map的矢量化方法.这是可以创建数据框顶部的代码:

How can I merge the three-tiered index into one index? Namely, I want to turn (1987, 1, 2) into pd.datetime(1987, 1, 2). I'd prefer a vectorized approach using df.index.map. Here's code that can create the top part of the dataframe:

df = pd.DataFrame(
    {'3 months': [1, 2, 3, 4, 5]},
    index=[
        [1987, 1987, 1987, 1987,1987],
        [1,1,1,1,1],
        [2,5,6,7,8]
    ]
)

推荐答案

使用pd.Index.map

df.set_index(df.index.map(lambda t: pd.datetime(*t)))

            3 months
1987-01-02         1
1987-01-05         2
1987-01-06         3
1987-01-07         4
1987-01-08         5

这篇关于将pandas multiindex折叠为单个索引的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆