Как сделать номальный вывод

458 просмотра
0
0 Комментариев

Подскажите как сделать нормальный вывод

from datetime import datetime
import pandas as pd
with open('log.txt', 'r') as all:
    list_line = all.read().splitlines()
    t = []
    stran = []
    errors = 0
for line in list_line:
    b = line.split(' | ')
    time = datetime.strptime(b[1], "%d.%m.%Y %H:%M:%S") - datetime.strptime(b[0], "%d.%m.%Y %H:%M:%S")
    t[len(t):] = [time]
    if (int(b[3]) > 400) or (b[4].find('error') != -1): errors = errors + 1
    stran.append(b[2])
 
print('Максимальное значение: ' + str(max(t)))
print('Минимальное значение: ' + str(min(t)))
p = pd.DataFrame(pd.to_timedelta(t))
print('Медиана: ' + str(p.median()))
print('Среднее значение: ' + str(p.mean()))
print('Количесто ошибок: ' + str(errors))
 
stran_d = {}.fromkeys(stran, 0)
for a in stran:
    stran_d[a] += 1
print(stran_d)

На входе файл примерно с таким содержание

24.05.2015 14:05:06 | 24.05.2015 14:07:08 | q.com/index.html | 404 | тело_ответа
24.05.2015 14:05:30 | 24.05.2015 14:07:30 | q.com/index.html | 200 | тело_ответа
24.05.2015 14:06:08 | 24.05.2015 14:07:56 | ya.ru/index.html | 200 | тело_ответа
24.05.2015 14:07:06 | 24.05.2015 14:08:01 | google.com/index.html | 404 | error
24.05.2015 14:10:15 | 24.05.2015 14:11:08 | google.com/index.html | 303 | error

Получается такой результат

Максимальное значение: 0:02:02
Минимальное значение: 0:00:53
Медиана: 0   00:01:48
dtype: timedelta64[ns]
Среднее значение: 0   00:01:31.600000
dtype: timedelta64[ns]
Количесто ошибок: 3
{'q.com/index.html': 2, 'ya.ru/index.html': 1, 'google.com/index.html': 2}

Как в выводе убрать лишнее оставить только ‘Медина: 00:01:48’ ?


Добавить комментарий

1 Ответы

Python Опубликовано 14.12.2018
0

Пример:

In [7]: dates = ['24.05.2017 14:07:06', '24.05.2017 16:33:06', '24.05.2017 17:45:06']
 
In [8]: s = pd.Series(dates)
 
In [9]: s
Out[9]:
0    24.05.2017 14:07:06
1    24.05.2017 16:33:06
2    24.05.2017 17:45:06
dtype: object
 
In [10]: s = pd.to_datetime(s)
 
In [11]: s
Out[11]:
0   2017-05-24 14:07:06
1   2017-05-24 16:33:06
2   2017-05-24 17:45:06
dtype: datetime64[ns]
 
In [12]: s.diff()
Out[12]:
0        NaT
1   02:26:00
2   01:12:00
dtype: timedelta64[ns]
 
In [13]: s.diff().median()
Out[13]: Timedelta('0 days 01:49:00')
 
In [14]: str(s.diff().median())
Out[14]: '0 days 01:49:00'

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up