Quora重复问题特征工程Python脚本CSV读取报错求助
Hey there, let's break down what's likely going wrong with your code and fix it step by step.
你的代码片段
import pandas as pd data = pd.read_csv('train.csv', sep='\t') data = data.drop(['id', 'qid1', 'qid2'], axis=1)
你遇到的报错片段
unfile('/Volumes/Macintosh HD/chrome/is_that_a_duplicate_quora_question-master/feature_engineering.py', wdir='/Volumes/Macintosh HD/chrome/is_that_a_duplicate_quora_question-master')
Traceback (most recent call last):
File "...
最可能的原因&解决方案
1. 分隔符用错了(最常见)
Quora公开的重复问题训练数据集(train.csv)默认是逗号分隔(,),而非制表符分隔(\t)。当你强制设置sep='\t'时,pandas无法正确解析列,后续执行删除id、qid1等列的操作时,就会因为找不到对应列名报错。
修正方法:调整分隔符
# 要么直接去掉sep参数(pandas默认自动识别逗号分隔符) data = pd.read_csv('train.csv') # 要么显式指定逗号作为分隔符 data = pd.read_csv('train.csv', sep=',')
2. 文件路径问题
虽然报错里显示了工作目录,但有可能train.csv不在当前工作路径下,或者路径中的空格(比如Macintosh HD)导致读取异常。
修正方法:使用绝对路径
import pandas as pd # 替换为你的train.csv文件的完整绝对路径 file_path = '/Volumes/Macintosh HD/chrome/is_that_a_duplicate_quora_question-master/train.csv' data = pd.read_csv(file_path) data = data.drop(['id', 'qid1', 'qid2'], axis=1)
3. 数据集损坏或缺失
如果train.csv下载不完整或者文件损坏,pandas也无法正常读取。
修正方法:重新从官方渠道下载Quora重复问题数据集,然后验证文件大小是否符合预期
快速验证问题的小技巧
你可以直接读取文件第一行,确认正确的分隔符:
with open('train.csv', 'r') as f: print(f.readline())
如果输出内容类似id,qid1,qid2,question1,question2,is_duplicate,那就肯定是分隔符的问题啦。
内容的提问来源于stack exchange,提问作者Yash Nigam

