始める無料で始める

複数のExcelワークシートからのデータ読み込みと結合を自動化する

これで、forループを使って、Excelファイル listings.xlsx にある3つの取引所すべての上場情報のインポート処理を自動化できるようになりました。次の手順で進めます。

  1. pd.ExcelFile() オブジェクトの sheet_names 属性を使ってシート名を取得します。
  2. 空のリストを作成します。
  3. 取得したシート名をforループで走査し、対応するシートからExcelファイルのデータを読み込んで変数に格納します。必要に応じて参照用の列を追加します。各イテレーションで、この変数の中身をリストに追加します。
  4. リスト内のDataFrameを連結します。

必要であれば、この章のこれまでの演習や pandas のドキュメントを参照してください。pandaspd としてインポート済みです。

この演習はコースの一部です

Pythonでの金融データのインポートと管理

コースを見る

演習の手順

  • ファイル listings.xlsx を使って pd.ExcelFile() オブジェクトを作成し、変数 xls に代入します。
  • xls.sheet_names 属性からシート名を取得し、exchanges に代入します。
  • 空のリストを作成し、変数 listings に代入します。
  • forループで exchangesexchange を反復変数として走査します。各イテレーションで以下を行います。
    • 欠損値対応として na_values'n/a' を指定し、データソースに xlssheet_name 引数に exchange を指定して pd.read_excel() を使います。結果を listing に代入します。
    • listing に新しい列 'Exchange' を作成し、値として exchange(反復変数)を設定します。
    • 得られた listing DataFrame を listings に追加します。
  • pd.concat() を使って listings の中身を連結し、listing_data に代入します。
  • .info() を使って listing_data の内容を確認します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create the pd.ExcelFile() object
xls = ____

# Extract the sheet names from xls
exchanges = ____.____

# Create an empty list: listings


# Import the data
for exchange in exchanges:
    listing = pd.____(____, sheet_name=____, na_values='n/a')
    listing['Exchange'] = ____
    listings.____(____)

# Concatenate the listings: listing_data
listing_data = pd.____(____)

# Inspect the results
listing_data.info()
コードを編集して実行