使用pandas时出错read_excel(header = [0,1])

时间:2016-12-20 21:58:38

标签: python-3.x pandas

我正在尝试使用pandas read_excel来处理文件。该文件有两列标题,所以我试图使用header关键字参数的multiIndex功能。

import pandas as pd, os 

"""data in 2015 MOR Folder"""
filename = 'MOR-JANUARY 2015.xlsx'

print(os.path.isfile(filename))

df1 = pd.read_excel(filename, header=[0,1], sheetname='MOR')

print(df1)

我得到的错误是ValueError:新名称的长度必须为1,得到2.该文件位于此google驱动器文件夹https://drive.google.com/drive/folders/0B0ynKIVAlSgidFFySWJoeFByMDQ?usp=sharing 我正在尝试按照这里发布的解决方案 Read excel sheet with multiple header using Pandas

1 个答案:

答案 0 :(得分:7)

我可能会弄错,但我不认为pandas会处理解析有合并单元格的excel行。因此,在第一行中,合并的单元格被解析为大多数空单元格。你需要很好地重复他们才能正确行事。这就是下面ffill的动机。如果您可以提前控制Excel工作簿,则可以使用您拥有的代码。

我的解决方案

它不漂亮,但它会完成它。

filename = 'MOR-JANUARY 2015.xlsx'
df1 = pd.read_excel(filename, sheetname='MOR', header=None)

vals = df1.values

mux = pd.MultiIndex.from_arrays(df1.ffill(1).values[:2, 1:], names=[None, 'DATE'])

df1 = pd.DataFrame(df1.values[2:, 1:], df1.values[2:, 0], mux)