Columna DataFrame para fecha y hora en Pandas
Paso 1: Prepare sus datos
Comenzaremos inicializando un DataFrame muy simple que veremos en nuestro ejemplo:
import pandas as pd start_date = ['3/1/2023', '4/1/2023', '5/1/2023', '6/1/2023'] students = [15, 12, 12, 23] data = pd.DataFrame ((dict(start_date= start_date, students = students))) print(data.head())
Veamos el contenido de DataFrame:
3/1/2023 | 15 |
4/1/2023 | 12 |
5/1/2023 | 12 |
01/06/2023 | 23 |
Paso 2: verifique los tipos de datos de su columna
En este paso opcional, veremos los tipos de datos de las columnas de DataFrame:
data.dtypes
Esto devolverá una serie que contiene los tipos de datos de las columnas de DataFrame:
start_date object students int64 dtype: object
Como puede ver, la columna start_date, que contiene datos que, aunque tienen formato de fecha, en realidad contienen cadenas.
Paso 3: convertir la serie en un objeto de fecha y hora
Para convertir start_date al formato de fecha y hora, en nuestro caso en formato aaaa-mm-dd, tiene un par de opciones:
Usa el método astype():
data['start_date'].astype('datetime64')
Utilice la función pd.to_datetime:
Ambos emitirán su serie de cadenas al objeto de fecha y hora:
0 2023-03-01 1 2023-04-01 2 2023-05-01 3 2023-06-01 Name: start_date, dtype: datetime64[ns]
Paso 4: Persiste tus cambios en el DataFrame
Para conservar sus cambios, simplemente vuelva a asignar la serie convertida al marco de datos, por ejemplo:
data['start_date'] = data['start_date'].astype('datetime64')
Ahora puede verificar sus tipos de datos de DataFrame:
data.dtypes
Tenga en cuenta que el tipo de datos de la fecha de inicio es datetime:
start_date datetime64[ns] students int64 dtype: object
Cambiar el formato de fecha y hora y convertir a cadena
Podemos usar el formateador strftime para formatear una serie de valores de fecha y hora. El resultado es una serie de objetos (cadenas)
pd.to_datetime(data['start_date']).dt.strftime('%d/%m/%y')
Solución de problemas
Si intenta llamar a strftime en una serie de objetos, recibirá el siguiente error:
AttributeError: Can only use .dt accessor with datetimelike values
Puede corregir este error llamando a strftime solo en objetos de tiempo de datos como se muestra arriba.