Сохранение данных с помощью pandas

ETL и ELT в Python

Jake Roach

Data Engineer

Сохранение данных в ETL-конвейере

Загрузка данных в файл:

  • Обеспечивает пользователям данных стабильный доступ к преобразованным данным
  • Выполняется как финальный шаг ETL-процесса, а также между отдельными этапами
  • Фиксирует «снимок» данных
ETL и ELT в Python

Загрузка данных в CSV-файлы с помощью pandas

Метод .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")
  • .to_csv вызывается у DataFrame
  • Записывает DataFrame по пути "stock_data.csv"
ETL и ELT в Python

Настройка вывода 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
ETL и ELT в Python

Проверка сохранности данных

Был ли 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
ETL и ELT в Python

Давайте потренируемся!

ETL и ELT в Python

Preparing Video For Download...