Рассчитать среднее время за доли секунды - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть 3 разных столбца временных меток в кадре данных pandas, в двух из которых записана доля секунд, а в третьем нет доли секунд. Я хотел бы рассчитать среднее значение этих 3 столбцов.

Я уже пытался вычислить среднее значение, используя функцию среднего по столбцам, и последовательно получал значение nan в качестве результата

import pandas as pd 
data = [{'time1': '2018-07-22 04:34:10.8966', 'time2': '2017-07-22 04:34:10.8966', 'time3': '2018-07-27 00:10:04'}]
df = pd.DataFrame(data)
df['estimate'] = df[['time1', 'time2', 'time3']].mean(axis=1)
df 

Ожидаемое: среднее значение из 3 временных отметок Фактическое значение: пока имеетсябез ошибок, он также всегда вычисляется в nan, что не является желаемым.

1 Ответ

0 голосов
/ 01 ноября 2019

Насколько я знаю, вы не можете напрямую указать значения даты и времени, вам нужно преобразовать их, усреднить, а затем преобразовать обратно:

data = [{'time1': '2018-07-22 04:34:10.8966', 'time2': '2017-07-22 04:34:10.8966', 'time3': '2018-07-27 00:10:04'}]
df = pd.DataFrame(data).apply(pd.to_datetime)

df['estimate'] = pd.to_datetime(df[['time1', 'time2', 'time3']].values.astype(pd.np.int64).mean(axis=1))

Результат:

                       time1                      time2               time3                      estimate
0 2018-07-22 04:34:10.896600 2017-07-22 04:34:10.896600 2018-07-27 00:10:04 2018-03-24 03:06:08.597733376
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...