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

Chr*_*ell 7 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)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是ValueError:新名称的长度必须为1,得到2.该文件位于此google驱动器文件夹中https://drive.google.com/drive/folders/0B0ynKIVAlSgidFFySWJoeFByMDQ?usp=sharing 我正在尝试按照此处发布的解决方案 使用Pandas阅读带有多个标题的excel表

piR*_*red 8

我可能会弄错,但我不认为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)
Run Code Online (Sandbox Code Playgroud)