pandas dataframe, используя diff () в столбце и проверяя условие в другом столбце - PullRequest
0 голосов
/ 16 мая 2019

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

Учитывая df:

id   date          quantity
1    2015-01-01    100
1    2016-01-01    500
1    2016-01-05    300
2    2017-01-01    100
2    2018-01-01    500
2    2018-01-05    100

Хотелось быполучить:

id   date          quantity    days
1    2015-01-01    100         365
1    2016-01-01    500         4
1    2016-01-05    300         NaN
2    2017-01-01    100         365
2    2018-01-01    500         2
2    2018-01-03    100         NaN

, где столбец days - дни до следующей даты под тем же идентификатором.Если это последняя дата идентификатора, дни установлены на NaN

Я использовал цикл по всему идентификатору для

for id in ids:
    dff = df[df['id'] == id]
    dff['days'] = dff.date.diff().dropna().dt.days.values

, который очень медленный, потому что таблица имеет болеенесколько миллионов строк.

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