Применить лямбда-выражение к строке: ошибка значения: значение истинности ряда неоднозначно

#python #pandas #date #lambda

#python #панды #Дата #лямбда

Вопрос:

Я хочу преобразовать столбец со строковой датой в другой тип строковой даты. Я пытался использовать apply следующим образом :

     self.df['mydatestring'] = self.df['mydatestring'].apply(
                             lambda x: datetime.datetime.strptime(x, '%Y-%m-%d').strftime('%d/%m/%y') 
                             if pd.notnull(x) else '',
                         )
  

Но у меня есть
ValueError : The truth value of a Series is ambiguous.
Я не понимаю, почему, не могли бы вы помочь?

Ответ №1:

Почему вы не используете pd.to_datetime :

 self.df['mydatestring'] = (pd.to_datetime(self.df['mydatestring'], 
                                          format='%Y-%m-%d', 
                                          errors='coerce')
                             .dt.strftime('%d/%m/%y')
                             .fillna('')
                          )