将多索引数据框写入Excel文件


问题内容

DataFrame MultiIndex踢了我的屁股。经过一段时间的努力,我能够使用此代码创建MutliIndex DataFrame

columns = pd.MultiIndex.from_tuples([('Zip', ''),
('All Properties', 'Avg List Price'),('All Properties', 'Median List Price'),
('3 Bedroom', 'Avg List Price'),('3 Bedroom', 'Median List Price'),
('2 Bedroom', 'Avg List Price'),('2 Bedroom', 'Median List Price'),
('1 Bedroom', 'Avg List Price'),('1 Bedroom', 'Median List Price')])
data[0] = ['11111', 'Val1', 'Val2', 'Val3', 'Val4', 'Val5', 'Val6', 'Val7', 'Val8']
df = pd.DataFrame(data, columns=columns)

一切看起来不错,直到我尝试将其写入Excel文件

writer = pd.ExcelWriter('testData.xlsx', engine='openpyxl')
df.to_excel(writer, 'Sheet1')
writer.save()

当我打开excel文件时,这就是我得到的。
在此处输入图片说明

如果我取消合并Excel中的列,则所有数据都在那里。

这是我要创建的图像
在此处输入图片说明

我猜测该问题与创建多索引列的方式有关,但是我无法弄清楚问题是什么。

我在Mac上运行python 2.7。感谢您的任何投入。


问题答案:

这是一个将在版本0.17.1中修复的错误,或者您可以使用 engine='xlsxwriter'

https://github.com/pydata/pandas/pull/11328