En este artículo, vamos a ver cómo convertir fechas en hojas de cálculo usando Python.
Archivo usado:
Este archivo consta de una sola columna titulada ‘Fecha’ y almacena fechas aleatorias de 2021 en algunas formas de formato diferentes.
Acercarse:
- Comenzaremos importando la biblioteca de pandas.
- Echemos un vistazo al código que convierte las fechas.
sample_dates[“Date”] = pd.to_datetime(sample_dates[“Date”]).dt.strftime(“%Y-%m-%d”)
- Para realizar tareas relacionadas con la fecha y la hora, primero debemos transformar la columna en un tipo de datos de fecha y hora, lo que hará esta sección del código:
sample_dates[“Date”] = pd.to_datetime(sample_dates[“Date”])
- Luego usamos los métodos dt y strftime con un valor de «%Y-%m-%d» para informar a Python cómo formatear la fecha. El ejemplo aquí que usamos es «%Y-%m-%» donde %Y es el año completo, %m es el mes con 2 dígitos y %d es la fecha con 2 dígitos.
Ejemplo 1: convertir cualquier fecha en hojas de cálculo
Python3
# This code converts any dates in spreadsheet import pandas as pd # Read the file and specify which column is the date sample_dates = pd.read_excel("sample_dates.xlsx") # Export output with dates converted to YYYY-MM-DD sample_dates["Date"] = pd.to_datetime( sample_dates["Date"]).dt.strftime("%Y-%m-%d") sample_dates.to_excel("sample_dates_formated.xlsx")
Producción:
Otros formatos conocidos:
Fecha de ejemplo: sábado 18 de diciembre de 2021, 19:00
- “%A, %B %d” -> “Sábado 18 de diciembre”
- “%d-%b-%y” -> “18-dic-21”
- “%d/%m/%Y” -> “18/12/2021”
- “%b %d, %Y” -> “18 de diciembre de 2021”
Directiva | Sentido | Ejemplo |
---|---|---|
%a | Día de la semana como nombre abreviado de la configuración regional |
dom, lun,…..,sáb(en_US); Entonces, Mo,…..,Sa(de_DE) |
%A | Día de la semana como nombre completo del lugar | domingo, lunes, ….., sábado |
%w | Día de la semana como número decimal, donde 0 es domingo y 6 es sábado | 0, 1, 2, 3……,6 |
%d | Día del mes como un número decimal con ceros | 01,02,….31 |
Ejemplo 2:
Vamos a usar el mismo conjunto de datos que usamos en el último ejemplo.
Format - "%d %b, %Y" -> "18 December, 2021"
Aquí usaremos ‘%#d’ para eliminar el relleno de cero del día, es decir, 08 a 8. Esto no hará relleno de cero si la fecha está en un solo dígito. Podemos usar ‘%-d’ en Linux.
Python3
# This code converts any dates in spreadsheet import pandas as pd # Read the file and specify which column is # the date sample_dates = pd.read_excel("sample_dates.xlsx") # Export output with dates converted to # "D MMMM, YYYY" sample_dates["Date"] = pd.to_datetime( sample_dates["Date"]).dt.strftime("%#d %B, %Y") sample_dates.to_excel("sample_dates_formated.xlsx")
Producción:
Ejemplo 3:
Aquí usaremos un formato diferente.
Format - "%B %d, %Y" -> "December 18, 2021"
Python3
# This code converts any dates in spreadsheet import pandas as pd # Read the file and specify which column is # the date sample_dates = pd.read_excel("sample_dates.xlsx") # Export output with dates converted to "MMMM D, # YYYY" sample_dates["Date"] = pd.to_datetime( sample_dates["Date"]).dt.strftime("%B %d, %Y") sample_dates.to_excel("sample_dates_formated.xlsx")
Producción: