Как рассчитать среднее значение нескольких значений Pytime Pandas datetime64 [ns] на строку кадра данных? - PullRequest
0 голосов
/ 03 ноября 2019
MC_schedule_df: 

    Act_Arr_Run-0        Act_Arr_Run-1          Act_Arr_Run-2        Act_Arr_Run-3
0   2005-08-05 05:15:08  2005-08-05 05:12:00    2005-08-05 05:16:50  2005-08-05 05:09:13
1   2005-08-05 06:18:30  2005-08-05 06:14:50    2005-08-05 06:14:29  2005-08-05 06:07:31
2   2005-08-05 06:22:17  2005-08-05 06:18:06    2005-08-05 06:26:25  2005-08-05 06:22:49
3   2005-08-05 08:52:56  2005-08-05 08:58:51    2005-08-05 09:05:27  2005-08-05 08:58:43
4   2005-08-05 13:04:24  2005-08-05 12:58:11    2005-08-05 13:05:41  2005-08-05 13:02:33
5   2005-08-05 13:22:08  2005-08-05 13:14:44    2005-08-05 13:09:08  2005-08-05 13:12:27
6   2005-08-05 14:26:38  2005-08-05 14:13:38    2005-08-05 14:17:31  2005-08-05 14:17:33
7   2005-08-05 18:08:41  2005-08-05 18:17:15    2005-08-05 18:14:21  2005-08-05 18:15:54
8   2005-08-05 19:46:15  2005-08-05 19:45:28    2005-08-05 19:46:20  2005-08-05 19:48:44
9   2005-08-05 23:13:53  2005-08-05 23:06:06    2005-08-05 23:06:25  2005-08-05 23:04:07

Здравствуйте,

У меня есть показанный выше фрейм данных (MC_schedule_df), состоящий из следующих типов данных:

In[1]: MC_schedule_df.dtypes
Out[1]: 
Act_Arr_Run-0    datetime64[ns]
Act_Arr_Run-1    datetime64[ns]
Act_Arr_Run-2    datetime64[ns]
Act_Arr_Run-3    datetime64[ns]
dtype: object

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

MC_schedule_df = MC_schedule_df.assign(Average=MC_schedule_df.mean(axis=1))

Это приводит к столбцу, заполненному значениями NaN. Я попытался выяснить, почему это не работает, и, таким образом, прочитал множество документации. Мое текущее предположение состоит в том, что Python не может «дестилировать» соответствующую информацию из значений даты и времени для вычисления среднего значения.

Как вычислить среднее из этих нескольких значений Python Pandas datetime64 [ns]? Любая помощь приветствуется.

Редактировать: я пробовал методы Объекты Datetime с пандой средней функции . Тем не менее, этот метод не работает, так как я хочу вычислить среднее значение для каждой строки, и поэтому не может легко вызвать серию.

1 Ответ

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

Вы можете использовать то, что показано в этом ответе . Как указано в ссылке, вы не можете рассчитать среднее для ряда дат, операция не поддерживается. Но вы можете вычислить среднее значение для группы timedeltas.
Используйте функцию pandas apply , чтобы обобщить ее и применить к DataFrame вместо Series.

mean_values = MC_schedule_df.apply(lambda dt : (dt - dt.min()).mean() + dt.min(), axis=1)

ИспользованиеВаш примерный фрейм данных, mean_values:

0   2005-08-05 05:13:17.750
1   2005-08-05 06:13:50.000
2   2005-08-05 06:22:24.250
3   2005-08-05 08:58:59.250
4   2005-08-05 13:02:42.250
5   2005-08-05 13:14:36.750
6   2005-08-05 14:18:50.000
7   2005-08-05 18:14:02.750
8   2005-08-05 19:46:41.750
9   2005-08-05 23:07:37.750
dtype: datetime64[ns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...