目录
前言
1. 文本文件
2. 二进制文件
3. 数据库交互
4. 其他格式
5. 性能优化与注意事项5
推荐场景
前言
Pandas 提供了丰富的输入/输出接口,支持多种数据格式的读写操作。内容来源为Pandas I/O 官方文档章节输入/输出 — pandas 2.2.3 文档 --- Input/output — pandas 2.2.3 documentation
以下是核心功能的分类整理。
1. 文本文件
-
CSV/TSV
-
读取:
pd.read_csv(filepath, sep=',', header='infer', index_col=None, dtype=None, parse_dates=False)
-
关键参数:
sep
(分隔符)、header
(标题行)、index_col
(索引列)、na_values
(缺失值标识)、encoding
(编码)。
-
-
写入:
df.to_csv(path, index=True, sep=',', header=True)
-
-
JSON
-
读取:
pd.read_json(path, orient='columns', lines=False)
-
支持格式: 列式 (
columns
)、记录式 (records
)、分块式 (split
)。
-
-
写入:
df.to_json(path, orient='columns', lines=False)
-
-
HTML
-
读取表格:
pd.read_html(io, match='.+', flavor='lxml')
-
从 HTML 页面提取所有表格(返回 DataFrame 列表)。
-
-
-
Markdown/LaTeX
-
导出:
df.to_markdown(), df.to_latex()
-
2. 二进制文件
-
Excel
-
读取:
pd.read_excel(io, sheet_name=0, header=0, index_col=None)
-
支持
.xls
,.xlsx
(依赖openpyxl
或xlrd
库)。
-
-
写入:
df.to_excel(excel_writer, sheet_name='Sheet1', index=True)
-
-
HDF5
-
读取/写入:
pd.HDFStore
类-
高效存储大型数据集,支持压缩和查询。
-
示例:
with pd.HDFStore('data.h5') as store: store.put('dataset', df) df = store.get('dataset')
-
-
-
Parquet/Feather
-
读取:
pd.read_parquet(path), pd.read_feather(path)
-
写入:
df.to_parquet(path), df.to_feather(path)
-
高性能列式存储,适合大数据集(需安装
pyarrow
或fastparquet
)。
-
-
Stata/SAS/SPSS
-
读取:
pd.read_stata(), pd.read_sas(), pd.read_spss()
-
写入:
df.to_stata()
-
3. 数据库交互
-
SQL
-
读取:
pd.read_sql(query, con)
-
写入:
df.to_sql(name, con, if_exists='fail', index=False)
-
依赖
SQLAlchemy
连接数据库(如 MySQL、PostgreSQL)。
-
-
-
Google BigQuery
-
读取:
pd.read_gbq(query, project_id)
-
4. 其他格式
-
剪贴板
-
读取/写入:
pd.read_clipboard(), df.to_clipboard()
-
-
Pickle
-
序列化:
df.to_pickle(path), pd.read_pickle(path)
-
保存 DataFrame 的完整状态(含索引和数据类型)。
-
-
-
Web API
-
读取 JSON API:
pd.read_json(url)
-
读取 XML:
pd.read_xml(url)
-
5. 性能优化与注意事项5
-
数据类型优化:
-
使用
dtype
参数指定列类型(如{'col1': 'int32'}
)以减少内存占用。
-
-
分块读取大文件:
-
pd.read_csv(..., chunksize=1000)
分块处理避免内存溢出。
-
-
缺失值处理:
-
通过
na_values
自定义缺失值标识符。
-
-
时间解析:
-
设置
parse_dates=True
或指定date_parser
函数解析日期列。
-
推荐场景
-
小规模数据: CSV/Excel(易读性优先)。
-
大规模数据: Parquet/Feather(读写速度快,压缩率高)。
-
跨平台存储: HDF5(支持复杂查询和压缩)。
-
数据库交互: SQL + SQLAlchemy(结构化查询)。
通过灵活选择 I/O 方法,可以高效处理不同规模和格式的数据任务。