Вы можете прочитать в полном файле журнала как фрейм данных с 1 столбцом. Затем используйте str.split
с expand=True
, который расширяет каждый список до своего собственного столбца:
txt = StringIO('''Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico
Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico
Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico
Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico
Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico
''')
left_greedy = True
# read in text file as one big dataframe
df = pd.DataFrame(txt)
if left_greedy:
df = df[0].str.split(pat=' ', n=2, expand=True)
else:
df = df[0].str.rsplit(pat=' ', n=2, expand=True)
# assign correct column names
df.columns = ['Col1', 'Col2', 'Col3']
Выход left_greedy=True
Col1 Col2 Col3
0 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
1 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
2 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
3 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
4 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
Выходleft_greedy=False
Col1 Col2 Col3
0 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
1 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
2 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
3 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
4 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico\n
Метод резервного копирования, работающий, например, на строке:
Вы можете использовать метод vanilla split
, чтобы упорядочить это, разделив его слева или справа. ,Затем конструктор pandas DataFrame
для определения вашего фрейма данных:
txt = "Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico"
left_greedy = True
if left_greedy:
txt = txt.split(' ', 2)
else:
txt = txt.rsplit(' ', 2)
df = pd.DataFrame(np.column_stack(txt), columns=['Col1', 'Col2', 'Col3'])
Вывод
Col1 Col2 Col3
0 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico
Если мы установим left_greedy = False
, мы получим:
Col1 Col2 Col3
0 Mar-13-19:04:13 [error] File does not exist: /var/www/favicon.ico