如何阻止to_csv因内容内逗号错误拆分单元格?
解决DataFrame导出CSV时列表/含逗号内容拆分单元格的问题
直接通过quoting参数控制引号包裹规则,就能避免含逗号的内容被错误拆分:
步骤1:导入必要模块
需要用到csv模块里的引号常量:
import pandas as pd import csv
步骤2:处理列表列(可选但推荐)
先把列表列转为字符串格式,确保内容可被正确导出:
# 假设你的DataFrame叫df,列表列是list_col df['list_col'] = df['list_col'].apply(str)
步骤3:带引号参数导出CSV
设置quoting=csv.QUOTE_ALL,让所有单元格被引号包裹,内部的逗号会被识别为内容而非分隔符:
df.to_csv('df.csv', sep=';', quoting=csv.QUOTE_ALL, index=False)
如果只想给非数字单元格加引号,改用quoting=csv.QUOTE_NONNUMERIC即可:
df.to_csv('df.csv', sep=';', quoting=csv.QUOTE_NONNUMERIC, index=False)
为什么之前的方法失效?
即使把列表转成"[1,2,3]"字符串,默认导出时pandas不会自动给含特殊字符的单元格加引号,CSV解析工具(比如Excel)会把字符串里的逗号误判成分隔符,导致单元格拆分。通过quoting参数强制添加引号后,工具会把引号内的所有内容视为单个单元格的内容。
内容的提问来源于stack exchange,提问作者Aura Zhao
相关产品推荐
相关产品推荐

