私は Python パンダを使用して処理している大きなスプレッドシート ファイル (.xlsx) を持っています。その大きなファイル内の 2 つのタブ (シート) のデータが必要になります。タブの 1 つには大量のデータがあり、もう 1 つにはいくつかの正方形のセルがあります。
使うときはpd.read_excel()
どのワークシートでも、ファイル全体が読み込まれるように見えます (関心のあるワークシートだけではありません)。そのため、このメソッドを 2 回 (シートごとに 1 回) 使用すると、実質的にワークブック全体が 2 回読み込まれることになります (指定したシートのみを使用しているにもかかわらず)。
特定のシートだけを読み込むにはどうすればよいですかpd.read_excel()
?
ベストアンサー1
試す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}
。