我正在编写python脚本,在其中生成两个不同的csv文件,然后使用熊猫读取这些文件。我能够读取pandas的file1,但在读取file2时却出错,该file2与file1格式相同(列名称相同),但值不同/相同。请找到以下错误并获取示例代码。
错误:
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运行代码。
答案 0 :(得分:0)
我遇到了同样的问题并解决了。因此,您可以使用以下思路进行检查。
检查定界符并像下面的示例一样提及
您也可以在文件路径前添加'r'。
否则共享文件图像
答案 1 :(得分:0)
您的 msLogFailure 文件示例看起来不错-6个列名和6个数据字段。
我正在寻找仅与此错误消息相关的帖子,并且找到了以下建议:
pd.read_csv(io.StringIO(txt),...)
。也许这会有所帮助。