2016-06-28 48 views
15

DOB valore del campione della colonna è in formato - 1/1/2016 che di default viene convertito in oggetto come illustrato di seguitoCome modificare il formato datetime in panda

DOB  object 

Conversione in formato data

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

Data converte

2016-01-26 

dtype è

DOB  datetime64[ns] 

Ora voglio convertire questo formato di data in 01/26/2016 o in qualsiasi altro formato di data generale. Come lo faccio?

Qualunque sia il metodo che provo mostra sempre la data nel formato 2016-01-26.

risposta

33

è possibile utilizzare dt.strftime, se il bisogno di convertire datetime in altri formati, ma poi dtype della colonna è 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' converte la colonna datetime per Unicode per applicare l'operazione DOB1 siamo di nuovo devi convertirlo in datetime. Non c'è altro modo di formattare senza perdere il tipo di dati? –