Formato de Fechas#
Ultima actualización: Mar 6, 2023 | YouTube
[1]:
import pandas as pd
pd.set_option("display.notebook_repr_html", False)
pd.__version__
[1]:
'1.5.2'
Un problema fundamental en los campos de fecha es la variedad de formatos posibles. Todos los valores del siguiente archivo representan la misma fecha.
[2]:
%%writefile /tmp/data.csv
birthday
17/09/18
"September 17, 2018"
17/09/2018
17/9/18
17-09-18
2018-09-17
9/17/2018
17-Sep-18
Overwriting /tmp/data.csv
[3]:
df = pd.read_csv("/tmp/data.csv")
df
[3]:
birthday
0 17/09/18
1 September 17, 2018
2 17/09/2018
3 17/9/18
4 17-09-18
5 2018-09-17
6 9/17/2018
7 17-Sep-18
[4]:
df.birthday = pd.to_datetime(
df.birthday,
#
# Por defecto False. Cuando no se especifica
# el formato, infiere el formato de la fecha
#
infer_datetime_format=True,
dayfirst=False,
#
# Controla el comportamiento ante datos
# invalidos
#
# * 'raise': genera una excepción
# * 'coerce': retorna un NaT
# * 'ignore': retorna el mismo valor
#
errors="ignore",
)
df
/tmp/ipykernel_1154/2432989742.py:1: UserWarning: Parsing dates in DD/MM/YYYY format when dayfirst=False (the default) was specified. This may lead to inconsistently parsed dates! Specify a format to ensure consistent parsing.
df.birthday = pd.to_datetime(
[4]:
birthday
0 2018-09-17
1 2018-09-17
2 2018-09-17
3 2018-09-17
4 2018-09-17
5 2018-09-17
6 2018-09-17
7 2018-09-17
[5]:
df.birthday = pd.to_datetime(
df.birthday,
infer_datetime_format=True,
format="%Y-%m-%d",
errors="ignore",
)
df
[5]:
birthday
0 2018-09-17
1 2018-09-17
2 2018-09-17
3 2018-09-17
4 2018-09-17
5 2018-09-17
6 2018-09-17
7 2018-09-17
[6]:
#
# Cambio de formato
#
df.birthday = df.birthday.dt.strftime("%d-%m-%Y")
df
[6]:
birthday
0 17-09-2018
1 17-09-2018
2 17-09-2018
3 17-09-2018
4 17-09-2018
5 17-09-2018
6 17-09-2018
7 17-09-2018