我正在解析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
)
对任何建议我都很感激。谢谢。
您似乎正在使用旧版本的Pandas(<= 0.19.0)。
参数error_bad_lines = False
将与Pandas 0.20.0+中的python引擎一起使用。
所以,只需更新Pandas库。