使用 pandas 持久化数据

使用 Python 的 ETL 和 ELT

Jake Roach

Data Engineer

在 ETL 管道中持久化数据

将数据写入文件:

  • 确保数据使用方可稳定访问已转换的数据
  • 既可作为 ETL 的最后一步,也可用于步骤之间
  • 捕获数据的"快照"
使用 Python 的 ETL 和 ELT

使用 pandas 将数据写入 CSV 文件

.to_csv() 方法

import pandas as pd

# 数据提取与转换
raw_data = pd.read_csv("raw_stock_data.csv")
stock_data = raw_data.loc[raw_data["open"] > 100, ["timestamps", "open"]]

# 将数据写入 .csv 文件
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)
  • 接受 TrueFalse 或字符串列表
stock_data.to_csv("./stock_data.csv", index=True)
  • 接受 TrueFalse
  • 决定是否将 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  # 导入 os 模块

# 提取、转换并加载数据
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")

# 检查路径是否存在
file_exists = os.path.exists("stock_data.csv")
print(file_exists)
True
使用 Python 的 ETL 和 ELT

让我们练习!

使用 Python 的 ETL 和 ELT

Preparing Video For Download...