Python 处理 CSV 推荐 csv 模块(轻量、标准库)或 pandas(功能强、适合分析);小数据用 csv,复杂操作选 pandas;注意编码、换行、引号等细节及中文乱码、数据类型识别等问题。

Python 处理 CSV 文件非常方便,核心是用 csv 模块或 pandas 库——前者轻量、标准库 自带;后者功能强、适合分析。选哪个取决于你的需求:简单读写用csv,带筛选、计算、合并等操作就上pandas。
用 csv 模块读取 CSV 文件(基础可靠)
适合小到中等规模数据,不依赖第三方库。注意 编码(常见为 UTF-8,中文需指定encoding='utf-8'),并处理换行、引号等特殊情况。
- 用
csv.reader按行读取,返回列表形式的每行数据 - 用
csv.DictReader把首行当列名,返回字典,更直观易用 - 读取时建议加
newline=''参数,避免 Windows 下多空行问题
用 pandas 读写 CSV(高效灵活)
pandas.read_csv()自动推断数据类型、跳过空行、处理缺失值(如nan),还能直接切片、过滤、聚合。
- 常用参数:
sep=','(分隔符)、header=0(首行为列名)、na_values=['N/A', ''](自定义空值标识) - 写入用
df.to_csv('output.csv', index=False),index=False避免多出序号列 - 中文路径或含中文列名时,保存务必加
encoding='utf-8-sig',否则 Excel 打开乱码
处理常见坑点(实用提醒)
实际操作中容易卡在细节:
立即学习“Python 免费学习笔记(深入)”;
- CSV 不是“纯文本表格”——字段含逗号、换行或引号时,必须用双引号包裹,
csv模块会自动处理,但手写或 Excel 导出不规范就易出错 - 数字被读成字符串?检查是否含空格或单位(如
"123 kg"),可用str.strip().replace('kg','').astype(float)清洗 - 日期列没识别成时间类型?加上
parse_dates=['date_column']参数,或后续用pd.to_datetime()
什么时候该换其他格式?
CSV 适合交换和初筛,但不适合以下场景:
- 数据含复杂嵌套结构(如 JSON 字段)→ 改用 JSON 或 Parquet
- 文件超 100MB、频繁读写 → 考虑 SQLite 或 HDF5 提升性能
- 需要保留样式、多表、公式 → 不是 CSV 的职责,用 Excel(
openpyxl或xlsxwriter)






























