我正在尝试使用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
答案 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)