[解決済み】同じワークブックの複数のワークシートに対して、Pandasを使用してpd.read_excel()を実行する。
質問
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}
辞書に登録されます。
関連
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] pandas DataFrameの特定のセルに対して、インデックスを使用して値を設定する
-
[解決済み] pandas GroupByを使ってグループごとの統計情報(カウント、平均値など)を取得する?
-
[解決済み】forループを使った辞書の反復処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】Flaskのテンプレートが見つからない【重複あり