J'ai une colonne dataframe avec des données datetime au format 1980-12-11T00: 00: 00 .
Je dois convertir toute la colonne au format de chaîne JJ / MM / AA .
Existe-t-il un code simple pour cela?
3 Réponses :
Lorsque vous utilisez pandas , essayez pandas.to_datetime:
import pandas as pd
df = pd.DataFrame({'date': ['1980-12-%sT00:00:00'%i for i in range(10,20)]})
df.date = pd.to_datetime(df.date).dt.strftime("%d/%m/%Y")
print(df)
date
0 10/12/1980
1 11/12/1980
2 12/12/1980
3 13/12/1980
4 14/12/1980
5 15/12/1980
6 16/12/1980
7 17/12/1980
8 18/12/1980
9 19/12/1980
Création d'un exemple de travail:
df['date_new']=pd.to_datetime(df.date).dt.strftime('%d/%m/%Y')
print(df)
date date_new
0 1980-12-11T00:00:00 11/12/1980
1 1990-12-11T00:00:00 11/12/1990
2 2000-12-11T00:00:00 11/12/2000
Convertissez la colonne en datetime par pd.to_datetime () et invoquez strftime ()
df = pd.DataFrame({'date':['1980-12-11T00:00:00', '1990-12-11T00:00:00', '2000-12-11T00:00:00']})
print(df)
date
0 1980-12-11T00:00:00
1 1990-12-11T00:00:00
2 2000-12-11T00:00:00
Je reçois: OutOfBoundsDatetime: Horodatage nanoseconde hors limites: 7020-11-11 00:00:00
Non, certainement pas l'année. Le format de la date avant la conversion en chaîne est AAAA-MM-JJ00: 00: 00
exactement «7020-11-11 00: 00: 00» cette ligne est l'endroit où l'erreur se produit. :) depuis les pandas ne peuvent pas 7020 comme année
ah, c'est un problème avec les données! Existe-t-il un moyen de ne pas s'arrêter sur de telles erreurs?
@Bimons, vous pouvez vérifier ceci et d'autres liens connexes. :) stackoverflow.com/questions/32888124/...
Vous pouvez utiliser pd.to_datetime pour convertir une chaîne en données datetime
pd.to_datetime(df['col']).dt.strftime('%d/%m/%Y')
Vous pouvez également transmettre un format spécifique comme:
pd.to_datetime(df['col'])
stackoverflow.com/ questions / 30132282 /… Donc quelque chose comme dates.strftime ('% d-% m-% Y')
pd.to_datetime ('1980-12-11T00: 00: 00'). strftime ('% d /% m /% Y'):'11 / 12/1980 ' code>