使用Pandas将CSV转Parquet时含逗号字符串报错的解决求助
解决CSV含逗号字符串转Parquet的数据错误问题
问题根源在于pd.read_csv()默认以逗号作为字段分隔符,当字符串内容包含逗号时,会被错误拆分到不同列,导致DataFrame结构混乱,最终转Parquet时出现数据错误。以下是具体解决方法:
- 指定正确的CSV分隔符
如果你的CSV实际使用其他分隔符(如分号;、制表符\t),直接通过sep参数指定:
import pandas as pd df = pd.read_csv('path/xxxx.csv', sep=';') # 替换为实际分隔符 df.to_parquet('path/xxxx.parquet')
- 识别引号包裹的含逗号字段
若CSV符合标准规范(含逗号的字符串用双引号包裹),设置quoting或quotechar参数让Pandas识别引号内的内容为单个字段:
import pandas as pd from csv import QUOTE_ALL # 方式1:指定引用规则 df = pd.read_csv('path/xxxx.csv', quoting=QUOTE_ALL) # 方式2:直接指定引号字符(若用单引号则替换为quotechar="'") df = pd.read_csv('path/xxxx.csv', quotechar='"') df.to_parquet('path/xxxx.parquet')
- 处理不规范CSV的兜底方案
如果CSV格式混乱,既无统一分隔符也无引号包裹,可尝试启用Python引擎并忽略逗号后的空格:
import pandas as pd df = pd.read_csv('path/xxxx.csv', engine='python', skipinitialspace=True) df.to_parquet('path/xxxx.parquet')
若仍无效,建议先预处理CSV:用正则替换字符串内的逗号为临时字符,读取后再替换回来;或手动逐行解析内容。
内容的提问来源于stack exchange,提问作者Madhu Reddy
相关产品推荐
相关产品推荐

