1. ホーム
  2. パイソン

[解決済み】同じワークブックの複数のワークシートに対して、Pandasを使用してpd.read_excel()を実行する。

2022-03-30 15:15:51

質問

Python pandasを使って処理している大きなスプレッドシートファイル(.xlsx)があります。その大きなファイルの中の2つのタブ(シート)からデータを必要とすることがあります。1つのタブには大量のデータがあり、もう1つのタブにはいくつかの正方形のセルがあるだけです。

を使用した場合 pd.read_excel() オン 任意 のワークシートを読み込むと、ファイル全体が読み込まれたように見えます(興味のあるワークシートだけでなく)。そのため、このメソッドを2回(各シートに対して1回)使用すると、(指定したシートしか使用していないのに)ワークブック全体が2回読み込まれることになり、事実上苦しまなければなりません。

特定のシートだけを読み込むには pd.read_excel() ?

解決方法は?

試す pd.ExcelFile :

xls = pd.ExcelFile('path_to_file.xls')
df1 = pd.read_excel(xls, 'Sheet1')
df2 = pd.read_excel(xls, 'Sheet2')

HaPsantran が指摘するように、Excel ファイル全体が ExcelFile() を呼び出します(これを回避する方法はないようです)。これは単に、新しいシートにアクセスするたびに同じファイルを読み込む手間を省いているだけです。

なお sheet_name の引数は pd.read_excel() は、シート名(上記の通り)、シート番号を示す整数(例えば 0, 1, など)、シート名またはインデックスのリスト、または None . リストを指定した場合は、シート名/インデックスをキーとし、データフレームを値とする辞書を返します。デフォルトでは,単に最初のシートを返す(すなわち sheet_name=0 ).

もし None が指定されています。 すべて シートが返されます。 {sheet_name:dataframe} 辞書に登録されます。