J'ai un dataframe pandas avec une colonne contenant des années:

col1 col2 ... year ... coln
 -    -   ... 2020 ...  -
 -    -   ... 2021 ...  -
 -    -   ... 2022 ...  -

Je veux convertir cela en date en mappant l'année à la 1ère date de cette année, comme:

col1 col2 ... year       ... coln
 -    -   ... 2020-01-01 ...  -
 -    -   ... 2021-01-01 ...  -
 -    -   ... 2022-01-01 ...  -

J'ai essayé ceci:

df['year'] = pd.to_datetime(df['year'], format='%Y%m%d')

Mais cela me donne cette erreur:

ValueError: les données de temps '2020' ne correspondent pas au format '% Y% m% d' (correspondance)

Comment puis-je réparer cela?

2
Ank 2 sept. 2020 à 15:30

2 réponses

Meilleure réponse

Utilisez %Y pour l'année de correspondance au format YYYY, mais je pense que ce paramètre doit être omis:

df['year'] = pd.to_datetime(df['year'], format='%Y')

df['year'] = pd.to_datetime(df['year'])
3
jezrael 2 sept. 2020 à 12:31

Vous pouvez essayer ceci:

df['year'] = df['year'].astype('str') + "-01-01"
print(df)
1
SKM 2 sept. 2020 à 12:45