Persistindo dados com pandas

ETL e ELT em Python

Jake Roach

Data Engineer

Persistência de dados em um pipeline ETL

Carregar dados para um arquivo:

  • Garante acesso estável aos dados transformados
  • Ocorre no final do ETL e também entre etapas
  • Captura um “snapshot” dos dados
ETL e ELT em Python

Carregando dados em CSV com pandas

Método .to_csv()

import pandas as pd

# Extração e transformação
raw_data = pd.read_csv("raw_stock_data.csv")
stock_data = raw_data.loc[raw_data["open"] > 100, ["timestamps", "open"]]

# Carregar para um arquivo .csv
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 do 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 a string usada para separar colunas no arquivo
  • O caractere | é 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 salvo corretamente no arquivo CSV?

import pandas
import os  # Importa o módulo os

# Extrair, transformar e carregar dados
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")

# Verificar se o caminho existe
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...