Estou encontrando um AttributeError ao tentar usar o acessador .dt em uma série pandas, apesar de confirmar que a série contém apenas objetos Timestamp. Condensei meu problema em um Exemplo Mínimo Reprodutível (MRE) abaixo:
import pandas as pd
# Sample data
data = {'DateGreffe': ['25/10/2023', '26/10/2023', '27/10/2023']}
df = pd.DataFrame(data)
# Convert "DateGreffe" to datetime
df.loc[:, "DateGreffe"] = pd.to_datetime(df["DateGreffe"], dayfirst=True)
# Check data type of "DateGreffe" column
print(df["DateGreffe"].apply(type).unique())
# Convert "DateGreffe" back to string format "DD/MM/YYYY"
df.loc[:, "DateGreffe"] = df["DateGreffe"].dt.strftime("%d/%m/%Y")
print(df)
A saída da instrução print confirma que a coluna DateGreffe contém apenas objetos Timestamp. No entanto, quando tento usar .dt.strftime nesta coluna, recebo o seguinte erro:
AttributeError: só pode usar o acessador .dt com valores semelhantes a data e hora
Quando você atribui um fatiamento nas linhas como:
Isso mantém o tipo original da Série (se possível), aqui objeto.
Para corrigir isso, atribua a coluna inteira sem fatiar as linhas com
:
: