' Unsparsify'写入Excel时的pandas多索引

时间:2016-01-22 13:23:33

标签: python excel pandas

我有一个带有多索引的pandas数据帧,默认情况下,当打印到屏幕时,它会" sparsify"输出,以便不重复索引的更高级别。例如:

稀疏

enter image description here

我可以将其更改为" unsparse"如下: enter image description here

然而,df.to_excel(writer)并不尊重此选项,它总是将索引写为稀疏的合并单元格。是否有某种方法可以在" unsparse"办法?或者,我可以写入csv并将其导入excel,因为csv总是" unsparse",但这有点烦人。

2 个答案:

答案 0 :(得分:5)

在写入Excel之前尝试应用reset_index()

一个例子:

first  second
bar    one      -0.008620
       two       1.688653
baz    one      -0.145099
       two       0.870981
foo    one       2.544494
       two       0.935468
qux    one      -1.868521
       two      -0.118242
  

打印(s.reset_index())

  first second         0
0   bar    one -0.008620
1   bar    two  1.688653
2   baz    one -0.145099
3   baz    two  0.870981
4   foo    one  2.544494
5   foo    two  0.935468
6   qux    one -1.868521
7   qux    two -0.118242

答案 1 :(得分:0)

现在您可以指定merge_cells=False

一个例子:

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]

df=pd.DataFrame(np.random.randn(8, 4), index=arrays)

df.to_excel('example.xlsx',merge_cells=False)