Persistindo dados com pandas

ETL e ELT em Python

Jake Roach

Data Engineer

Persistindo dados em um pipeline de ETL

Carregar dados para um arquivo:

  • Garante acesso estável aos dados transformados para quem consome
  • Acontece como etapa final de um ETL e também entre etapas distintas
  • Captura um "snapshot" dos dados
ETL e ELT em Python

Carregando dados para arquivos CSV com pandas

Método .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 chamado no DataFrame
  • Escreve o DataFrame no caminho "stock_data.csv"
ETL e ELT em Python

Personalizando a saída de CSV

stock_data.to_csv("./stock_data.csv", header=True)
  • Aceita True, False ou lista de strings
stock_data.to_csv("./stock_data.csv", index=True)
  • Aceita True ou False
  • Define se a coluna index será escrita no arquivo
stock_data.to_csv("./stock_data.csv", sep="|")
  • Aceita uma string usada para separar colunas no arquivo
  • O caractere | é uma opção comum

Tem equivalentes:

  • .to_parquet()
  • .to_json()
  • .to_sql()
1 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html
ETL e ELT em Python

Garantindo a persistência dos dados

O DataFrame foi armazenado corretamente no arquivo 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 e ELT em Python

Vamos praticar!

ETL e ELT em Python

Preparing Video For Download...