pandas 通过转置(透视)列创建多索引列 Dataframe [duplicate]

ca1c2owp  于 2023-01-04  发布在  其他
关注(0)|答案(1)|浏览(109)
    • 此问题在此处已有答案**:

How can I pivot a dataframe?(5个答案)
11小时前关门了。
我有一个 Dataframe ,看起来像这样:

date                  enddate      category     Low     High
2023-01-02 06:00:00   2023-12-01   A            45      55
2023-01-02 06:00:00   2024-12-01   A            46      56
2023-01-02 06:00:00   2025-12-01   A            47      57
2023-01-02 06:00:00   2023-12-01   B            85      86
2023-01-02 06:00:00   2024-12-01   B            86      87
2023-01-02 06:00:00   2025-12-01   B            88      89

我希望转换成一个 Dataframe ,看起来像这样:

date                  
                           2023-12-01       2024-12-01          2025-12-01
                          Category Low High Category Low High  Category Low High
2023-01-02 06:00:00       A    45  55        A   46  47        A    47  57
2023-01-02 06:00:00       B    85  86        B   86  87        B    88  89

所以它本质上是创建多索引列。我不确定什么是有效的方法。我玩了一下堆叠/解堆叠和旋转,但不能真正抓住自己周围。
如果你能建议一个好办法的话。
请注意,并非所有行的日期值都是06:00:00。

v2g6jxz6

v2g6jxz61#

可以尝试set_index + unstack

df.set_index(['date', 'enddate', 'category']).unstack(level=1).swaplevel(axis=1).sort_index(axis=1, level=0)

enddate                      2023-12-01     2024-12-01     2025-12-01    
                                   High Low       High Low       High Low
date                category                                             
2023-01-02 06:00:00 A                55  45         56  46         57  47
                    B                86  85         87  86         89  88

相关问题