Convertir el tipo de columna DataFrame de cadena a datetime

¿Cómo puedo convertir una columna DataFrame de cadenas (en formato dd / mm / aaaa) a tiempos de datos?

La forma más fácil es usar to_datetime :

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

También ofrece un argumento de primera dayfirst para los tiempos europeos (pero tenga en cuenta que esto no es estricto ).

Aquí está en acción:

 In [11]: pd.to_datetime(pd.Series(['05/23/2005'])) Out[11]: 0 2005-05-23 00:00:00 dtype: datetime64[ns] 

Puede pasar un formato específico:

 In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y") Out[12]: 0 2005-05-23 dtype: datetime64[ns] 

Si su columna de fecha es una cadena con el formato ‘2017-01-01’ puede usar pandas astype para convertirla a datetime.

df['date'] = df['date'].astype('datetime64[ns]')

o use datetime64 [D] si desea precisión del día y no nanosegundos

print(type(df_launath['date'].iloc[0]))

rendimientos

igual que cuando usas pandas.to_datetime

Puede probarlo con otros formatos, entonces ‘% Y-% m-% d’, pero al menos esto funciona.

Puede usar lo siguiente si desea especificar formatos difíciles:

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

Más detalles sobre el format aquí: