pandas でデータを永続化する

Python で学ぶ ETL と ELT

Jake Roach

Data Engineer

ETL パイプラインにおけるデータの永続化

ファイルへのデータの書き込み:

  • データ利用者が変換済みデータへ安定してアクセスできるようにします
  • ETL プロセスの最終ステップとしてだけでなく、各ステップの間でも実行されます
  • データの「スナップショット」を記録します
Python で学ぶ ETL と ELT

pandas を使った CSV ファイルへのデータ書き込み

.to_csv() メソッド

import pandas as pd

# Data extraction and transformation
raw_data = pd.read_csv("raw_stock_data.csv")
stock_data = raw_data.loc[raw_data["open"] > 100, ["timestamps", "open"]]

# Load data to a .csv file
stock_data.to_csv("stock_data.csv")
  • DataFrame に対して .to_csv を呼び出します
  • DataFrame をパス "stock_data.csv" に書き込みます
Python で学ぶ ETL と ELT

CSV ファイル出力のカスタマイズ

stock_data.to_csv("./stock_data.csv", header=True)
  • True、False、または文字列のリストを指定できます
stock_data.to_csv("./stock_data.csv", index=True)
  • True または False を指定できます
  • index 列をファイルに書き込むかどうかを決定します
stock_data.to_csv("./stock_data.csv", sep="|")
  • ファイル内で列を区切る文字列を指定します
  • | 文字がよく使われます

他にも同様のメソッドがあります:

  • .to_parquet()
  • .to_json()
  • .to_sql()
1 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html
Python で学ぶ ETL と ELT

データ永続化の確認

DataFrame は CSV ファイルに正しく保存されたでしょうか?

import pandas
import os  # Import the os module

# Extract, transform and load data
raw_data = pd.read_csv("raw_stock_data.csv")
stock_data = raw_data.loc[raw_data["open"] > 100, ["timestamps", "open"]]
stock_data.to_csv("stock_data.csv")

# Check that the path exists
file_exists = os.path.exists("stock_data.csv")
print(file_exists)
True
Python で学ぶ ETL と ELT

練習しましょう!

Python で学ぶ ETL と ELT

Preparing Video For Download...