Python中Pandas报EmptyDataError: No columns to parse from file的一种原因

Python中Pandas报EmptyDataError: No columns to parse from file的一种原因

使用Pyhton的Pandas模块时报EmptyDataError: No columns to parse from file。什么原因。先上原来的错误代码:

   with open(datafile, 'w', newline='',encoding='utf-8') as wf:
       writer = csv.writer(wf)
       writer.writerow(colsname)
       for quotes in getdatas:
           row =[quotes['Date'],quotes['Open'],quotes['High'],quotes['Low'],quotes['Close'],quotes['Volume']]
           writer.writerow(row)
       quotes = pandas.read_csv(datafile, engine='python', index_col=0,
                                parse_dates=True, infer_datetime_format=True)

结果毫不留情的报错。

网上查了查,大家把关注点放到了read_csv()上了。
主要的解决方法为:

  1. 按报错信息查看对应的CSV文件是否存在,是否为空,是否格式正确
  2. 如果自信代码没问题,就pass掉报错。

但是出问题的代码查了都不是这些情况。究竟哪里错了呢。
原来read_csv()所在行与写入csv文件的循环在同一列上对齐了。这就是说,写入cvs后,还没有关闭文件,就企图打开csv进行读操作,结果发生了独占性错误。

找到了问题的根源就好修改了。把read_csv()所在的行提前到与最初的with对齐,这样就可以在with完成写操作,并关闭文件后,再read_csv()了,从而避免报EmptyDataError: No columns to parse from file
这样正确代码就应该是:

    with open(datafile, 'w', newline='',encoding='utf-8') as wf:
        writer = csv.writer(wf)
        writer.writerow(colsname)
        for quotes in getdatas:
            row =[quotes['Date'],quotes['Open'],quotes['High'],quotes['Low'],quotes['Close'],quotes['Volume']]
            writer.writerow(row)
    quotes = pandas.read_csv(datafile, engine='python', index_col=0,
                                 parse_dates=True, infer_datetime_format=True)

所以出现:EmptyDataError: No columns to parse from file 也有可能是,出现了文件被其他程序打开,占用的情况。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值