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

Я огромный новичок, использующий Python для запроса базы данных SQL, анализа результатов в серии фреймов данных и вывода результатов на лист Excel (xlsxwriter) с несколькими вычислениями, выполненными в коде Python, но явозникли проблемы с одной манипуляцией.Мне нужно найти разницу между датами между строками, которые имеют одинаковый идентификатор, но не каждый идентификатор соответствует как начальной, так и конечной дате.У меня есть данные, которые выглядят так, например:

ID   date       other stuff
1    1/01/2018  xxxxxx
2    1/04/2018  xxxxxx
2    1/08/2018  yyyyyy
3    1/14/2018  xxxxxx
4    2/01/2018  xxxxxx
4    2/04/2018  yyyyyy

Я хотел бы, чтобы результаты были в новом кадре данных, который выводится на отдельный лист в том же файле Excel.

1 Ответ

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

Попробуйте использовать groupby:

df['diff days'] = df.groupby('ID')['date'].diff()

Выход:

   ID       date   other  stuff diff days
0   1 2018-01-01  xxxxxx    NaN       NaT
1   2 2018-01-04  xxxxxx    NaN       NaT
2   2 2018-01-08  yyyyyy    NaN    4 days
3   3 2018-01-14  xxxxxx    NaN       NaT
4   4 2018-02-01  xxxxxx    NaN       NaT
5   4 2018-02-04  yyyyyy    NaN    3 days
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...