2016-12-20 6 views
4

ファイルを操作するためにpandas read_excelを使用しようとしています。このファイルにはヘッダーの2つの列があるので、headerキーワード引数のmultiIndex機能を使用しようとしています。pandasを使用しているときのエラーread_excel(header = [0,1])

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.ファイルを持って、私はここに Read excel sheet with multiple header using Pandas

+0

エラーはバージョンによって異なる可能性があり、処理中であるようです - [GitHub](https://github.com/pandas-dev/pandas/issues/15133) – arthuritus

答えて

2
掲載ソリューションを追跡しようとしているこのGoogleドライブフォルダ https://drive.google.com/drive/folders/0B0ynKIVAlSgidFFySWJoeFByMDQ?usp=sharing であります

私は間違っているかもしれませんが、私はpandasがマージされたセルがある行を解析するのを処理するとは思わないのです。したがって、最初の行では、マージされたセルはほとんど空のセルとして解析されます。正しく動作させるには、うまく繰り返す必要があります。これが下記の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) 
関連する問題