read_csv()报错

mark 一下:
代码: my_data_df = pd.read_csv("./question_data/math_question_information.csv") 报错
错误代码为:
Error in reading a csv file in pandas[CParserError: Error tokenizing data. C error: Buffer overflow caught - possible malformed input file]
解决方案:

1. 可以先找出发生error的行(在文件的哪一行发生的error,直接定位)
import csv
with open(file_name, "rb") as f:
    reader = csv.reader(f)
    line_number = 1
    try:
        for row in reader:
            line_number += 1
    except Exception as e:
        print("error line: {}, the type of exception: {}, the message of 
               exception: {}".format(line_number, str(type(e)), e.message))

2. 直接查看pandas.read_csv()函数说明或源代码
    pandas.read_csv()文档相关参数说明:
        param: 
            lineterminatorstr: str type (length 1), optional 
                Character to break file into lines. Only valid with C parser.
    
    在 NLP 任务中,尤其是从网页中获取数据时,常常会伴随着HTML标签等信息混夹在文本中,如<\r>等
    信息,会与函数读取时按照“\r”分隔符相冲突,亦或者文本中包含有正则表达式等信息,也会引起冲突;
    在此,解决之道为设置lineterminator="\n",使用换行符进行分割
       
    code:
        df = pandas.read_csv(file_name, lineterminator="\n")

3. 直接使用 Python 引擎进行读取,read_csv() 函数默认使用 C 引擎进行读取;读取的文件较大时,
    设置为 Python 引擎读取
    code:
        df = pandas.read_csv(file_name, engine="python)
    
    注:Python 引擎读取分隔符时会较慢

此三种方案亲测有效

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值