首页 > 解决方案 > 将python pandas数据框转换为不同的格式

问题描述

我在 python 中有一个数据框,我想以不同的格式进行转换:

以下是相同的示例:

当前数据框:

                  Header 1             Header 1 
              Col_A  Col_B         Col_A       Col_B
2021-07-15     1        2            3         4
2021-07-16     5        6            7         8

预期输出:

Date        Header_No   Col_A   Col_B
2021-07-15       1          1      2
2021-07-16       1          5      6
2021-07-15       2          3      4
2021-07-16       2          7      8

基本上我想要 4 列 Date , Header_No , Col_A , Col_B 。

标签: pythonpandassklearn-pandas

解决方案


这就是字面意思.stack()

将列中的规定级别堆叠到索引。

通过一些调整以根据需要重命名列和/或索引级别和/或列:

>>> stacked = df.rename(columns=lambda c: int(c.split()[-1]), level=0).stack(level=0)
>>> stacked
              Col_A  Col_B
2021-07-15 1      1      2
           2      3      4
2021-07-16 1      5      6
           2      7      8
>>> stacked.rename_axis(['Date', 'Header_No']).reset_index()
         Date  Header_No  Col_A  Col_B
0  2021-07-15          1      1      2
1  2021-07-15          2      3      4
2  2021-07-16          1      5      6
3  2021-07-16          2      7      8

推荐阅读