La valeur de l'échantillon de colonne DOB est au format - 1/1/2016
qui, par défaut, est converti en objet, comme indiqué ci-dessous.
DOB object
Conversion au format de date
df['DOB'] = pd.to_datetime(df['DOB'])
Date convertie en
2016-01-26
dtype
est
DOB datetime64[ns]
Maintenant, je veux convertir ce format de date en 01/26/2016
ou en tout autre format de date général. Comment fait-on ça?
Quelle que soit la méthode que j'essaie, la date est toujours affichée au format 2016-01-26
.
Vous pouvez utiliser dt.strftime
si vous devez convertir datetime
vers d'autres formats (mais notez qu'alors dtype
de la colonne sera 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
_
Changer le format mais pas le type:
df['date'] = pd.to_datetime(df["date"].dt.strftime('%Y-%m'))
Le code ci-dessous a fonctionné pour moi au lieu du précédent - essayez-le!
df['DOB']=pd.to_datetime(df['DOB'].astype(str), format='%m/%d/%Y')
Par rapport à la première réponse, je recommanderai d'utiliser d'abord dt.strftime (), puis pd.to_datetime (). De cette manière, le type de données datetime sera toujours généré.
Par exemple,
import pandas as pd
df = pd.DataFrame({'DOB': {0: '26/1/2016 ', 1: '26/1/2016 '})
print(df.dtypes)
df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y')
print(df.dtypes)
df['DOB1'] = pd.to_datetime(df['DOB1'])
print(df.dtypes)
Le code ci-dessous devient un type 'datetime' et se présente également dans la chaîne de format indiquée. Fonctionne bien!
df['DOB']=pd.to_datetime(df['DOB'].dt.strftime('%m/%d/%Y'))
Vous pouvez essayer ceci, il convertira le format de date en JJ-MM-AAAA:
df['DOB'] = pd.to_datetime(df['DOB'], dayfirst = True)