使用Pandas读取含行内换行的CSV文件遇问题求助
解决Pandas读取含多行引号字段的CSV问题
嘿,我之前也碰到过几乎一模一样的坑!你遇到的这种情况,本质是CSV里的多行引号字段——某个字段被双引号包裹,里面包含了换行符,这其实是符合CSV规范的写法,但如果Pandas的解析参数没设对,就会把换行后的内容误判成新的一行记录。
别担心,pd.read_csv()其实自带参数能完美解决这个问题,核心是明确指定引号相关的规则:
具体解决方案
直接在读取时设置quotechar和quoting参数,代码示例如下:
import pandas as pd # 根据你的文件情况选择合适的quoting参数 df = pd.read_csv( '你的文件路径.csv', quotechar='"', # 指定双引号作为字段包裹符 quoting=pd.QUOTE_MINIMAL # 仅解析包含特殊字符(换行、分隔符)的引号字段 )
参数解释
quotechar='"':告诉Pandas,双引号是用来包裹字段内容的标识,这样它会把引号内部的所有内容(包括换行)当成一个完整的字段。quoting=pd.QUOTE_MINIMAL:这是最常用的模式,Pandas只会识别那些包含特殊字符(比如换行、逗号这类分隔符)的引号包裹字段,正好匹配你遇到的场景——那个带\r\n的字段被双引号包起来,就会被正确解析成单个字段,而不会拆成两行。
如果你的CSV里所有字段都用双引号包裹,可以把quoting改成pd.QUOTE_ALL试试;要是还有问题,先检查下CSV文件里有没有未闭合的双引号,这种语法错误也会导致解析异常。
内容的提问来源于stack exchange,提问作者user6088719
相关产品推荐
相关产品推荐

