{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "3f47e32c-e5c1-45ca-bb04-9b4ccc761089",
   "metadata": {
    "tags": []
   },
   "source": [
    "Formato de Fechas --- 2:22 min\n",
    "===\n",
    "\n",
    "* 2:22 min | Última modificación: Octubre 14, 2021 | [YouTube](https://youtu.be/pg4LOWUg9dw)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0435023e-a926-408e-890a-535c2d832fef",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "pd.set_option(\"display.notebook_repr_html\", False)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94747efc-cb45-4893-8b4b-3a41267d09e6",
   "metadata": {},
   "source": [
    "Un problema fundamental en los campos de fecha es la variedad de formatos posibles. Todos los valores del siguiente archivo representan la misma fecha."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d72dd56e-0878-48ef-a17e-a449ccae16a1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Overwriting /tmp/data.csv\n"
     ]
    }
   ],
   "source": [
    "%%writefile /tmp/data.csv\n",
    "birthday\n",
    "17/09/18\n",
    "\"September 17, 2018\"\n",
    "17/09/2018\n",
    "17/9/18\n",
    "17-09-18\n",
    "2018-09-17\n",
    "9/17/2018\n",
    "17-Sep-18"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "9da848bd-eb92-4f75-8d0f-c961ff88ab7d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "             birthday\n",
       "0            17/09/18\n",
       "1  September 17, 2018\n",
       "2          17/09/2018\n",
       "3             17/9/18\n",
       "4            17-09-18\n",
       "5          2018-09-17\n",
       "6           9/17/2018\n",
       "7           17-Sep-18"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('/tmp/data.csv')\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6086d864-8708-4d6f-a054-96ad796d0613",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "    birthday\n",
       "0 2018-09-17\n",
       "1 2018-09-17\n",
       "2 2018-09-17\n",
       "3 2018-09-17\n",
       "4 2018-09-17\n",
       "5 2018-09-17\n",
       "6 2018-09-17\n",
       "7 2018-09-17"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.birthday = pd.to_datetime(\n",
    "    df.birthday,\n",
    "    \n",
    "    #\n",
    "    # Por defecto False. Cuando no se especifica\n",
    "    # el formato, infiere el formato de la fecha\n",
    "    #\n",
    "    infer_datetime_format=True,\n",
    "    \n",
    "    #\n",
    "    # Controla el comportamiento ante datos \n",
    "    # invalidos\n",
    "    #\n",
    "    #   * 'raise': genera una excepción\n",
    "    #   * 'coerce': retorna un NaT \n",
    "    #   * 'ignore': retorna el mismo valor\n",
    "    #\n",
    "    errors='coerce',\n",
    ")\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2213c40a-7d0c-4abe-a2ec-6c2f7ccf1d77",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "     birthday\n",
       "0  17-09-2018\n",
       "1  17-09-2018\n",
       "2  17-09-2018\n",
       "3  17-09-2018\n",
       "4  17-09-2018\n",
       "5  17-09-2018\n",
       "6  17-09-2018\n",
       "7  17-09-2018"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#\n",
    "# Cambio de formato \n",
    "#\n",
    "df.birthday = df.birthday.dt.strftime(\"%d-%m-%Y\")\n",
    "df"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}