2013-07-09 16 views
9

ExcelデータをPythonのデータフレームにインポートするにはどうすればいいですか?行5から始まり、ヘッダーを含むpythonデータフレームにExcelを読み込む

現在のところ、現在のExcelワークブックでは、ピボットテーブルを更新してその他の処理を行うオープニング時にいくつかのvbaが実行されます。

次に、ピボットテーブルの更新結果をPythonのデータフレームにインポートして、さらに解析したいと考えています。

import xlrd 

wb = xlrd.open_workbook('C:\Users\cb\Machine_Learning\cMap_Joins.xlsm') 

#sheetnames 
print wb.sheet_names() 

#number of sheets 
print wb.nsheets 

ファイルのリフレッシュとオープンがうまく機能します。しかし、どのようにして、最初のシートから、5行目のヘッダーから最後のレコードnまでのデータを選択しますか?

+0

ありがとうAndy。 .xlsmファイルで動作するpd.ExcelFileを取得できず、.xlsxファイルと.xlsmファイルで動作するはずのopenpyxlをインストールできないようです。私はちょうどxbaとして保存するように私のvbaを変更しました。 skip_rows = 4の部分を除いてすべてが機能しましたが、後でPythonで不要な行を削除しました.df2 = df [2:] – IcemanBerlin

+0

ああ。実際にskiprows = 4で調整されたskip_rows = 4とその部分もうまくいきました。まことにありがとうございます。 .xlsmファイルがうまくいけば、銀色の星...ゴールドを得ます;) – IcemanBerlin

+0

おっと! githubにxlsmファイルに関する問題を追加します。 –

答えて

18

は、Excelシートを読み取るためパンダExcelFile parse方法を使用することができ、io docsを参照してください。

xls = pd.ExcelFile('C:\Users\cb\Machine_Learning\cMap_Joins.xlsm') 

df = xls.parse('Sheet1', skiprows=4, index_col=None, na_values=['NA']) 

skiprowsが第4行を無視し、そしてother optionsいくつか(すなわち、行インデックス4で開始)。

+0

これ以外にも、pandas.read_excel()*を使用してExcelファイルを読み取ることができます。これはpandas.ExcelFile()と同じです。 – rrawat

+0

@rwt ['pd.read_excel'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html)が優先されます。それを書きました! –

5

受け入れられた回答は古いです(受け入れられた回答のコメントに記載されています)。 現在好ましいオプションが使用されていますpd.read_excel()

関連する問題