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