使用pandas的read_csv读取csv文件时出现列宽截断字符串内容的问题
pandas读取CSV列内容截断解决方案
1. 先排查是否为显示截断(概率最高)
pandas默认会对打印输出的长字符串做截断处理,仅显示前部分内容加省略号,实际存储在DataFrame中的内容是完整的,可通过以下代码验证:
- 打印对应行的Subject列原始内容:
print(df.loc[1, 'Subject']) - 如果输出内容完整,可通过修改全局显示配置取消列宽限制:
import pandas as pd # 取消最大列宽显示限制,所有内容完整展示 pd.set_option('display.max_colwidth', None)
2. 确认读取配置正确
你使用的CSV为Excel导出的分号分隔格式,读取时需显式指定相关参数避免解析错误:
import pandas as pd df = pd.read_csv( "你的本地文件路径.csv", sep = ";", # 显式指定分隔符为分号,覆盖pandas默认的逗号分隔规则 dtype = {"Subject": str}, # 强制将Subject列识别为字符串类型,避免自动类型推断导致内容丢失 encoding = "utf-8-sig", # 适配Excel导出CSV的默认编码,避免特殊字符乱码或截断 quoting = 3 # 可选参数:如果字段内包含特殊字符,开启不引用任何字段的模式,避免解析出错 )
3. 导出文件配置
确认DataFrame中内容完整后,导出时添加以下参数即可保留全部内容:
df.to_csv( "导出的目标文件路径.csv", sep = ";", index = False, # 不导出pandas默认生成的行索引列 encoding = "utf-8-sig" )
内容的提问来源于stack exchange,提问作者Reinaldo Franco
相关产品推荐
相关产品推荐

