Разница между датами между соответствующими строками в панде - PullRequest
0 голосов
/ 14 ноября 2018

Ниже приведен пример типового кадра данных панд.Я пытаюсь найти разницу между датами в двух строках (с первой строкой в ​​качестве основы):

PH_number   date        Type
H09879721   2018-05-01  AccountHolder
H09879731   2018-06-22  AccountHolder

Если разница между двумя датами находится в пределах 90 дней, то эти две строки должны бытьдобавлен новый фрейм данных панд.Столбец date имеет тип object.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Использование .diff():

df.date.diff()<=pd.Timedelta(90,'d')

0    False
1     True
Name: date, dtype: bool
0 голосов
/ 14 ноября 2018

Преобразовать date столбец в datetime64[ns] тип данных, используя pd.to_datetime, а затем вычесть как указано:

df['date'] = pd.to_datetime(df['date'])

#if comparing with only 1st row
mask = (df['date']-df.loc[0,'date']).dt.days<=90
# alternative mask = (df['date']-df.loc[0,'date']).dt.days.le(90)

#if comparing with immediate rows.
mask = df['date'].diff().dt.days<=90
# alternative mask = df['date'].diff().dt.days.le(90)

df1 = df.loc[mask,:] #gives you required rows with all columns
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...