PythonCSV文件操作_结构化数据解析【教程】

8次阅读

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

PythonCSV 文件操作_结构化数据解析【教程】

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(openpyxlxlsxwriter
text=ZqhQzanResources