Pandas读取CSV报错:product_warranty_end_date列不存在
解决CSV列不存在的问题
问题根源
你的CSV文件存在HTML转义后的引号(")和额外的行级双引号包裹,导致pandas默认解析时无法正确拆分列——所有表头被合并成了单个列,自然找不到product_warranty_end_date。
解决方案
方法1:先处理转义字符再读取
先将文件中的"替换为普通双引号,再让pandas正确解析字段:
import pandas as pd from io import StringIO # 读取原始文件并替换转义引号 with open('你的文件名.csv', 'r', encoding='utf-8') as f: content = f.read().replace('"', '"') # 加载处理后的内容为DataFrame df = pd.read_csv(StringIO(content), quotechar='"')
方法2:读取时直接处理转义
如果不想修改原始文件,可在读取时通过转换器处理每个字段的转义字符:
import pandas as pd # 先获取表头(避免重复读取) temp_df = pd.read_csv('你的文件名.csv', nrows=0) # 读取并处理每个字段的转义引号 df = pd.read_csv( '你的文件名.csv', sep=',', quotechar='"', converters={col: lambda x: x.replace('"', '') for col in temp_df.columns} )
验证结果
执行以下代码确认列是否正确识别:
print(df.columns)
输出应包含product_warranty_end_date,此时即可正常对该列应用条件。
内容的提问来源于stack exchange,提问作者Azize Lbaibi
相关产品推荐
相关产品推荐

