объект ‘str’ не имеет атрибута ‘isocalendar’

#python #pandas #calendar

Вопрос:

У меня есть следующая проблема. У меня есть столбец в моем наборе данных Дата:

 df["Date"].head()
0    2021-05-27
1    2021-05-27
2    2021-05-27
3    2021-05-27
4    2021-05-27
Name: Date, dtype: object
 

Мне нужно вычислить неделю в году. Я пробую эту формулу: df["date_week"] = df["Date"].apply(lambda x: x.isocalendar()[1]) но я получил это сообщение об ошибке: AttributeError: 'str' object has no attribute 'isocalendar' . Как я могу это исправить, пожалуйста?

Ответ №1:

Это то, что ошибка говорит о том, что ваш столбец «Дата» в настоящее время является объектом, поэтому преобразуйте его в datetime:

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

Окончательно:

 df["date_week"]=df['Date'].dt.isocalendar().week
#you can also use: df['Date'].dt.week but it will give you FutureWarning