¿Cómo convertir una fecha en una cadena en Python y Pandas?

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:

fechasingresos0

1

2

3

4

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?