如何用Pandas正确读取含引号与逗号的异常格式CSV文件?
如何用Pandas正确解析带转义双引号的CSV文件?
当然可以!你的CSV文件采用了标准CSV格式的双引号转义规则——用连续两个双引号""表示字段内的单个双引号,并且整行被双引号包裹。Pandas的read_csv方法原生支持这种格式,只需要简单配置参数(甚至默认参数就可以搞定)。
具体解决方案
1. 读取本地CSV文件
如果你的数据存放在本地文件中,直接用以下代码:
import pandas as pd # 读取文件,默认参数已支持双引号转义,显式指定参数可确保兼容性 df = pd.read_csv("your_file.csv", quotechar='"', doublequote=True)
2. 直接处理字符串形式的CSV内容
如果你的CSV是字符串格式(比如你提供的示例内容),可以用StringIO模拟文件对象:
import pandas as pd from io import StringIO # 你的原始CSV字符串 raw_csv = '"1,0,3,""Braund, Mr. Owen Harris"",male,22,1,0,A/5 21171,7.25,,S"' # 解析为DataFrame df = pd.read_csv(StringIO(raw_csv), quotechar='"', doublequote=True)
验证结果
运行代码后,查看Name字段的内容:
print(df['Name'].iloc[0]) # 输出: Braund, Mr. Owen Harris
这正是你预期的格式——Pandas会自动把转义的双引号""解析成正常的字段包裹逻辑,正确识别包含逗号的Name字段,不会把它拆分成多个列。
参数说明
quotechar='"':指定用双引号作为字段的包裹符(当字段包含分隔符逗号时,用双引号包裹)。doublequote=True:这是Pandas的默认值,告诉解析器把连续的两个双引号解析为一个双引号,处理CSV中的转义场景。
这样处理后,你得到的DataFrame结构就和你期望的正常CSV完全一致了。
内容的提问来源于stack exchange,提问作者Kimarokko
相关产品推荐
相关产品推荐

