Компонент среднего времени только для столбца даты и времени панд - PullRequest
0 голосов
/ 15 мая 2018

У меня есть датафрейм pandas со столбцом datetime.Мне нужно найти среднее время этого столбца, независимо от даты.Например, если бы у меня было

dte
----
2018-02-20 20:30:00
2018-09-03 20:30:00
2017-05-18 21:00:00
2014-11-26 21:00:00

, я бы ожидал результат

20:45:00

Я попытался просто взять компонент времени объектов времени данных и усреднить их, а

df['tm'].dt.time.mean()

Но выдает следующую ошибку:

TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'

1 Ответ

0 голосов
/ 15 мая 2018

Один из способов - вычесть нормированное datetime, а затем вычислить среднее для серии timedelta.

df = pd.DataFrame({'datetime': ['2018-02-20 20:30:00', '2018-09-03 20:30:00',
                                '2017-05-18 21:00:00', '2014-11-26 21:00:00']})

# convert to datetime
df['datetime'] = pd.to_datetime(df['datetime'])

# take difference to normalized datetime
df['time'] = df['datetime'] - df['datetime'].dt.normalize()

# calculate mean and format
res = str(df['time'].mean())[-8:]

print(res)

'20:45:00'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...