如何在to_excel()和read_excel()之间保留pandas多索引?

时间:2015-05-11 12:07:21

标签: python excel pandas

根据read_excel的pandas文档,我可以将索引列名称放在一个单独的行上,然后该方法哪些列应该用作索引。

我想从多索引数据框中创建一个可以读取的Excel文件,但我无法弄清楚如何让pandas以这样的方式编写to_excel创建附加行(来自多索引数据帧)。

我无法想象将多索引数据框存储为Excel工作表然后再将其拉回来是一个不常见的用例,所以我想知道我是不是还没有想出了如何做到这一点。

以下是我想要冻结的数据框的示例'在回读之前在Excel中,而不必告诉read_excel哪些列是索引:

ipdb> my_df
                             Date         Amount
Rec Section             Row                         
0   Top Section         2    2015-05-01      -105.00
1   Middle Section      3    2015-05-04     90247.60
2   Middle Section      4    2015-05-05     -2992.99
3   Bottom Section      5    2015-05-08      -800.00

在我的示例中,有三个索引列:Rec,Section和Row。

当我把它写到Excel然后再读回来时,我不想告诉它。由于read_excel似乎有一个方法,当它们出现在一个单独的行上时会推断出索引名称,我想让它只是想出来(假设我正确地写了Excel文件)。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我在尝试将数据透视表写入Excel时遇到了同样的问题。我可以通过修改frame.py中的../pandas/core文件来实现此功能。将if self.columns.nlevels > 1更改为if self.columns.nlevels > 1 and not index可以获得我所需要的内容。

由于Pandas仍然不支持此功能,您可能仍会遇到有趣的输出。此外,这也可能无法解决read_excel的问题。希望这有点帮助!

我在他的GitHub comment中引用了'onesandzeros'。