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

У меня есть кадр данных, который выглядит следующим образом:

employee     entry           timestamp

A              1          2012-04-06 14:51
                          2012-04-06 14:52
                          2012-04-06 14:53

               2          2012-04-06 15:21
                          2012-04-06 15:22
                          2012-04-06 15:23

               3          2012-04-06 13:42
                          2012-04-06 13:43
                          2012-04-06 13:44

B              1          2012-04-06 14:48
                          2012-04-06 14:49
                          2012-04-06 14:50

               2          2012-04-06 15:24
                          2012-04-06 15:25
                          2012-04-06 15:26

               3          2012-04-06 13:33
                          2012-04-06 13:34
                          2012-04-06 13:35

Здесь отметки времени для каждой записи всегда сортируются. Что я хочу найти:

  • Разница между каждой отметкой времени для каждой записи
  • Среднее из этих различий для каждой записи
  • Среднее из средних значений для записи (рассчитано выше) на одного работника

В конце я хочу что-то вроде:

employee               average

A                     00:05:21

B                     00:04:23

Я делаю следующее:

df["deltas"] = df.groupby(["employee", "entry"])["timestamp"].diff()

# drop all NATs from df["deltas"]

described = df["deltas"].groupby(["employee", "entry"]).describe()

means = described.groupby(["employee", "entry"]).mean()

average = means.groupby(["employee"]).mean()

Я хотел получитьнекоторая обратная связь, если это правильный способ делать вещи, основанные на постановке задачи. Мои результаты выглядят так, как будто все в порядке, но я не уверен, что мои groupby() звонки находятся в правильном месте и могу ли я сделать это лучше. Я впервые работаю с pandas. Был бы очень признателен за некоторые глаза на это.

По сути, временные метки для каждой записи представляют собой каждый раз, когда сотрудник обновлял эту запись, я хочу найти среднее время, которое сотрудник тратит на обновление записи. Сотрудник обновит запись x раз. x всегда определен и одинаков для всех сотрудников и сотрудников.

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