我正在编写python脚本,在其中我生成了两个不同的csv文件,然后使用pandas读取这些文件。我可以用pandas读取file1,但在读取与file1格式相同(列名相同)但值不同/相同的file2时遇到错误。请找到下面的错误和我正在使用的示例代码。
错误:
Traceback (most recent call last):
File "MSReport.py", line 168, in <module>
fail = pd.read_csv('/home/cisapp/msLogFailure.csv', sep=',')
File "/home/cisapp/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 676, in parser_f
return _read(filepath_or_buffer, kwds)
File "/home/cisapp/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 448, in _read
parser = TextFileReader(fp_or_buf, **kwds)
File "/home/cisapp/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 880, in __init__
self._make_engine(self.engine)
File "/home/cisapp/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 1114, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "/home/cisapp/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 1891, in __init__
self._reader = parsers.TextReader(src, **kwds)
File "pandas/_libs/parsers.pyx", line 532, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file
代码:
df = pd.read_csv(BASE_LOCATION+'/msLog_Success.csv', engine='python')
f_output = df.groupby('MSISDN').last()
#print(df)
print(f_output)
fail = pd.read_csv(BASE_LOCATION+'/msLogFailure.csv', engine='python')
fail = fail['MSISDN']
fail = fail.tolist()
for i in fail:
succ = f_output[f_output.MSISDN != i]
在上面的示例代码中,在读取文件df = pd.read_csv(BASE_LOCATION+'/msLog_Success.csv', engine='python')
时没有出现错误,但是在读取文件fail = pd.read_csv(BASE_LOCATION+'/msLogFailure.csv', engine='python')
时,我遇到了上面提到的错误。请帮助解决。
注意:我正在使用python3运行代码。
发布于 2020-05-06 06:41:34
我遇到了同样的问题,并解决了。所以你可以使用下面的点子来检查。
检查分隔符,并像下面的示例一样提及
您还可以在文件路径前添加'r‘。
否则共享文件镜像
发布于 2020-05-06 09:33:50
您的msLogFailure文件示例看起来还不错--6个列名和6个数据字段。
我查找了关于这个错误消息的帖子,我找到了一个建议:
pd.read_csv(io.StringIO(txt),...)
.也许这会有帮助。
https://stackoverflow.com/questions/61628395
复制相似问题