En este tutorial de análisis de datos, aprenderemos cómo convertir objetos de fecha y hora en cadenas en tareas generales de programación de Python y durante el análisis de datos.
Transmitir una fecha a la cadena en Python
Crearemos un objeto de fecha y hora:
import datetime my_date = datetime.datetime(2023,12,1) print(my_date)
Obtendremos el siguiente objeto de fecha:
2023-12-01 00:00:00
Si observamos su tipo, veremos que es datetime.datetime.
Podemos transformar fácilmente esta variable en una cadena usando el formateador strftime, que convierte las fechas en una cadena usando el formato que especifique. Asegúrese de especificar las unidades de tiempo requeridas que le gustaría ver.
my_date_str = my_date.strftime ('%d-%m-%y') print ( my_date_str )
Esto devuelve: 01-12-23.
my_date_str = my_date.strftime('%Y%m%d') print ( my_date_str )
Devuelve una cadena en formato aaaammdd: 20231101
Obviamente, si comprobamos el tipo de objeto de Python, veremos que es una cadena.
type(my_date_str )
Convierta una columna de pandas que contenga fechas en una cadena
El siguiente caso que veremos es cómo convertir una columna Pandas DataFrame que contiene valores de fecha en cadenas.
Crear un marco de datos
# Initialize DataFrame import pandas as pd dates = pd.date_range(start="10/10/2023", periods = 5, freq = 'B' ) revenue = [381, 428, 239, 465, 564] data = pd.DataFrame(dict(dates=dates, revenue=revenue)) data.head()
Veamos las primeras filas de DataFrame:
2023-10-10 | 381 |
2023-10-11 | 428 |
2023-10-12 | 239 |
2023-10-13 | 465 |
2023-10-16 | 564 |
Y si observamos los tipos de datos de pandas, vemos que el tipo de columna de fechas es datetime64.
data.dtypes
dates datetime64[ns] revenue int64 dtype: object
Usando el formateador strftime
La conversión a cadena es, una vez más, muy fácil gracias a la función de acceso pandas dt que puede usar en una columna pandas (objeto Serie). Para convertir los valores de la columna, use el siguiente fragmento
data['dates'] = data['dates'].dt.strftime('%Y%m%d')
Esto devuelve los siguientes valores: tenga en cuenta que el tipo de datos de la columna ahora es un objeto que los pandas utilizan para representar cadenas (entre otros objetos).
0 20231010 1 20231011 2 20231012 3 20231013 4 20231016 Name: dates, dtype: object
Usando el método de la serie pandas astype ()
Otra opción es usar la función astype():
data['dates'] = data['dates'].astype('string')
Próximo aprendizaje
¿Cómo convertir una cadena a un número hexadecimal con Python?