2016-06-28 1 views
15

DOB valeur de l'échantillon de la colonne est dans le format - 1/1/2016 qui, par défaut est converti en objet comme illustré ci-dessousComment changer le format datetime en pandas géants

DOB  object 

Conversion à jour le format

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

Date de convertit en

2016-01-26 

dtype est

DOB  datetime64[ns] 

Maintenant, je veux convertir ce format de date à 01/26/2016 ou dans tous les autres formats de date généraux. Comment fait-on ça? Quelle que soit la méthode que j'essaie, elle affiche toujours la date au format 2016-01-26

Répondre

33

Vous pouvez utiliser dt.strftime, si besoin de convertir datetime à d'autres formats, mais dtype de la colonne est object (string):

import pandas as pd 

df = pd.DataFrame({'DOB': {0: '26/1/2016 ', 1: '26/1/2016 '}}) 
print (df) 
     DOB 
0 26/1/2016 
1 26/1/2016 

df['DOB'] = pd.to_datetime(df.DOB) 
print (df) 
     DOB 
0 2016-01-26 
1 2016-01-26 

df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y') 
print (df) 
     DOB  DOB1 
0 2016-01-26 01/26/2016 
1 2016-01-26 01/26/2016 
+5

'strftime' convertit la colonne datetime en unicode pour appliquer l'opération sur DOB1 nous encore une fois pour le convertir en date-heure. N'y a-t-il pas d'autre moyen de se former sans perdre le type de données? –