Python:Pandas如何使用'python'引擎跳过坏线

时间:2017-12-17 13:12:00

标签: python python-2.7 pandas

我正在解析Apache日志文件并将其保存到pandas数据框中以供我进一步调查。

但是在日志文件中我有一些不好的行,因此发生以下错误:

  

ValueError:预计行4320中的11个字段,见到27

为了解决这个问题,我在阅读文件时加入了error_bad_lines = False。这没有帮助,因为我收到以下错误:

  

ValueError:'python'引擎

不支持'error_bad_lines'选项

注意:我明确使用python engine,因为我将分隔符作为正则表达式。

代码段:

data = pd.read_csv(
    log_file, 
    sep=r'\s(?=(?:[^"]*"[^"]*")*[^"]*$)(?![^\[]*\])', 
    engine='python', 
    na_values='-',
    header=None,
    usecols = use_cols,
    skiprows =1,
    converters={time_taken_index[0]:parse_sec, time_index[0]:parse_datetime, req_index[0]:parse_str,status_index[0]:parse_str},
    error_bad_lines = False
    )

我很感激任何建议。谢谢。

1 个答案:

答案 0 :(得分:1)

您似乎在使用旧版本的Pandas(< = 0.19.0)。

参数error_bad_lines = False将与Pandas 0.20.0 +中的python引擎一起使用。

所以,只需更新Pandas库。