Formato de Fechas — 2:22 min

  • 2:22 min | Última modificación: Octubre 14, 2021 | YouTube

[1]:
import pandas as pd

pd.set_option("display.notebook_repr_html", False)

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,

    #
    # Controla el comportamiento ante datos
    # invalidos
    #
    #   * 'raise': genera una excepción
    #   * 'coerce': retorna un NaT
    #   * 'ignore': retorna el mismo valor
    #
    errors='coerce',
)
df
[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]:
#
# Cambio de formato
#
df.birthday = df.birthday.dt.strftime("%d-%m-%Y")
df
[5]:
     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