首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >pandas.errors.EmptyDataError,但文件不为空

pandas.errors.EmptyDataError,但文件不为空
EN

Stack Overflow用户
提问于 2019-02-01 20:04:12
回答 1查看 767关注 0票数 0

我已经编写了以下代码(缩短)来从netCDF文件中检索数据,并将它们作为时间序列保存在每个i,j单元格的每个循环中的临时文件中:

代码语言:javascript
复制
for i in range(0,400):
    for j in range(0,120):
       with open('file_temp.tmp', 'w') as out_temp:
           out_temp.write('header1'+'\t'+'header2'+'\n')
           for yr in range(1990,2011):
               (get data from netCDF)
               out_temp.write(str(val1)+'\t'+str(val2)+'\n')
       df=pd.read_csv('file_temp.tmp', delimiter='\t')

但是在Pandas读取文件的最后一行,我得到了这个错误:

代码语言:javascript
复制
 line 1605, in __init__
self._reader = parsers.TextReader(src, **kwds)
  File "pandas/_libs/parsers.pyx", line 565, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file

我将非常感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2019-02-05 18:46:26

对于可能担心这个问题的人,我找到了一种解决方案,它可能看起来有点天真,但有效,至少在紧急情况下可以被认为是一条捷径:

我将脚本拆分为两个脚本,一个用于提取数据并以时间序列的形式将其写入csv文件,另一个脚本用于读取这些csv文件并对其进行进一步处理。类似于:

第一个脚本:

代码语言:javascript
复制
for i in range(0,400):
    for j in range(0,120):
       with open('file_temp.tmp', 'w') as out_temp:
       out_temp.write('header1'+'\t'+'header2'+'\n')
           for yr in range(1990,2011):
               (get data from netCDF)
               out_temp.write(str(val1)+\
               '\t'+str(val2)+'\n')

第二个脚本:

代码语言:javascript
复制
df=pd.read_csv('file_temp.tmp', delimiter='\t')
(do further analysis)

如果您使用的是Unix或Linux,则bash脚本可以同时运行这两个脚本(连续运行),而不必逐个运行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54479156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档