Заменить даты в столбце фрейма данных больше контрольной даты - PullRequest
0 голосов
/ 17 октября 2019

У меня есть фрейм данных df, который имеет даты и выглядит следующим образом:

  DATE_OF_ENTRY
0    24/02/2019
1    01/08/2003
2    05/11/2002
3    03/02/2003
4    04/08/2003
5    05/02/2003
6    30/06/2003
7    01/03/2004
8    17/09/2001

У меня также есть переменная ссылочной даты с именем referencePeriodEndDate, которая в настоящее время равна '31/03/2019'.

Я пытаюсь изменить любую дату в столбце DATE_OF_ENTRY на «НЕ ИЗВЕСТНО», если дата в столбце больше контрольной даты. Таким образом, в приведенном выше примере я бы вернулся:

  DATE_OF_ENTRY
0     NOT KNOWN
1    01/08/2003
2    05/11/2002
3    03/02/2003
4    04/08/2003
5    05/02/2003
6    30/06/2003
7    01/03/2004
8    17/09/2001

Типы столбца данных и справочных данных:

referencePeriodEndDate =  type <class 'str'>
DATE_OF_ENTRY =  type object

Я пробовал следующее:

referencePeriodEndDate =  parser.parse(referencePeriodEndDate)
referencePeriodEndDate =  referencePeriodEndDate.strftime('%d/%m/%Y')

df["DATE_OF_ENTRY"].loc[
    df["DATE_OF_ENTRY"] > referencePeriodEndDate, 
    'DATE_OF_ENTRY'
] = 'NOT KNOWN'

и

df["DATE_OF_ENTRY"] = np.where(
    df["DATE_OF_ENTRY"] > referencePeriodEndDate,
    "NOT KNOWN", df["DATE_OF_ENTRY"]
) 

без успеха.

1 Ответ

2 голосов
/ 17 октября 2019

Использование pd.to_datetime()

referencePeriodEndDate = pd.to_datetime('31/03/2019')
df['DATE_OF_ENTRY'] = pd.to_datetime(df['DATE_OF_ENTRY'])

df['DATE_OF_ENTRY'] = df['DATE_OF_ENTRY'].where(
    df['DATE_OF_ENTRY'] <= referencePeriodEndDate, 'NOT KNOWN'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...