Разница в месяцах между двумя столбцами данных - PullRequest
0 голосов
/ 12 мая 2018

У меня есть два столбца даты ('dob', 'paymentDate'):

{'dob': {0: nan, 1: '10/16/1988', 2: nan, 3: nan, 4: nan},
'paymentDate': {0: '20120501',
1: '20100602',
2: '20110601',
3: '20120501',
4: '20110101'}}

Я хочу найти дельту времени в месяцах между ними. Меня интересуют только законченные месяцы (по сути, «пол» таймделты в месяцах). В этом конкретном случае результат для второго ряда должен быть 259 (21 год, 7 месяцев и 17 дней = 21 * 12 + 7 = 259 месяцев):

{'difference_in_months': {0: nan, 1: 259, 2: nan, 3: nan, 4: nan}}

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

from dateutil import relativedelta    
df_training_data['difference_in_months'] = relativedelta.relativedelta(df_training_data['paymentDate'], df_training_data['dob']).months

но я получаю

ValueError: The truth value of a Series is ambiguous

1 Ответ

0 голосов
/ 13 мая 2018

Вы можете использовать to_datetime и to_period

df=df.apply(pd.to_datetime,errors = 'coerce',axis=1)
df.paymentDate.dt.to_period('M')-df.dob.dt.to_period('M')-1
Out[95]: 
0    NaT
1    259
2    NaT
3    NaT
4    NaT
dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...