我写了下面的代码(缩短)来检索文件的netCDF数据,并在一个临时文件中的每个循环将它们保存为时间序列的每个I,J单元:
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')
但在读取由熊猫该文件的最后一行,我得到这个错误:
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
我会感激你的帮助
谁这个问题可能是一个问题,我找到了一种解决方案,这似乎有点幼稚,但工程和可被视为至少在紧急情况下的快捷方式:
我拆我的脚本到两个剧本,一个用于提取数据和时间序列为CSV文件的形式写他们,而另一个脚本来读取这些CSV文件,并进一步对它们进行处理。就像是:
首先脚本:
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')
(do further analysis)
如果使用的是Unix或Linux,bash脚本可以一起(连续)同时运行脚本,你不必跑一前一后