Вычитание последней строки каждой группы в групповом фрейме данных из каждой строки в той же группе - PullRequest
0 голосов
/ 23 февраля 2019

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

Я делаю:

grouped = data.groupby("case_id")
data["T_elapsed"] = grouped["event_id"].transform(lambda x: x-x.iloc[0])

Это работает,но это ужасно медленно для большого набора данных.Существуют ли менее дорогостоящие альтернативы для этого?

Заранее спасибо!

1 Ответ

0 голосов
/ 23 февраля 2019

Используйте first или last для Series с вычитающей колонкой data['event_id']:

grouped = data.groupby("case_id")
data["T_elapsed"] = data['event_id'] - grouped["event_id"].transform('first')

grouped = data.groupby("case_id")
data["T_elapsed"] = data['event_id'] - grouped["event_id"].transform('last')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...