" Y a-t-il des points manquants dans ce jeux de données ?"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"raw_data[raw_data.isnull().any(axis=1)]\n",
"\n",
"data = raw_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il n'y a pas des points manquants, donc on peut continuer l'analyse"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nos données utilisent une convention inhabituelle: le numéro de semaine est collé à l'année, donnant l'impression qu'il s'agit\n",
"de nombre entier. C'est comme ça que Pandas les interprète."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Un deuxième problème est que Pandas ne comprend pas les numéros de semaine. Il faut lui fournir les dates de début et de fin de semaine. Nous utilisons pour cela la bibliothèque `isoweek`.\n",
"\n",
"Comme la conversion des semaines est devenu assez complexe, nous écrivons une petite fonction Python pour cela. Ensuite, nous\n",
"l'appliquons à tous les points de nos donnés. Les résultats vont dans une nouvelle colonne 'period'."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def convert_week(year_and_week_int):\n",
" year_and_week_str = str(year_and_week_int)\n",
" year = int(year_and_week_str[:4])\n",
" week = int(year_and_week_str[4:])\n",
" w = isoweek.Week(year, week)\n",
" return pd.Period(w.day(0), 'W')\n",
"\n",
"data['period'] = [convert_week(yw) for yw in data['week']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il restent deux petites modifications à faire.\n",
"\n",
"Premièrement, nous définissons les périodes d'observation comme nouvel index de notre jeux de données. Ceci en fait une suite chronologique, ce qui sera pratique par la suite.\n",
"\n",
"Deuxièmement, nous trions les points par période, dans le sens chronologique."