2017-05-17 8 views
2

私は、パンダを使用して20k行のデータテーブルであるExcelファイルを解析しています。これまでのところとてもうれしかったですが、テーブルの最初の部分には、テーブル(テーブルが生成された日付)も使いたい小さなメタデータがあります。私は、任意の行をスキップしていない場合パンダのテーブルの開始前のデータ

現在:

raw = pd.read_excel(datafile, sheetname=0, parse_cols="B, D:I") 

を最初の数行だけでナンされています

>>> raw.values[0] 
array([nan, nan, nan, nan, nan, nan, nan], dtype=object) 

を私はそれを得るためにxlrdような、より基本的なものを使用してファイルを開くことができデータを読み込む必要がありますが、ファイル全体をメモリに2回ロードする必要があります。

ファイルを再インポートせずにテーブルの先頭より上のデータを取得できますか?

+0

その方法でヘッダパラメータと試みます。 [あなたはドキュメントをチェックすることができます](http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.read_excel.html) –

+0

@AmeyYadavいいえ、それは私が望むものではありません。これは、インデックス名として使用する行を指定します。その行の前にあるデータが必要です。 – user31415629

+1

あなたのメタデータのサンプルを提供することができます。 –

答えて

1

は、次のアプローチを検討してください。

xl = pd.ExcelFile(filepath) 

# you may want to set a correct row and column 
meta_data = xl.book.sheet_by_index(0).cell_value(0,0) 

skiprows = 5 # set it accordnigly... 

df = xl.parse(0, skiprows=skiprows, parse_cols="B, D:I") \ 
     .dropna(axis=1, how='all') 
関連する問題