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

问题描述 投票:0回答:1

我正在解析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
    )

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

python python-2.7 pandas
1个回答
1
投票

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

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

所以,只需更新Pandas库。

© www.soinside.com 2019 - 2024. All rights reserved.