Type de l'index en datetime. Ajout code de validation de la BDD.

parent 15663e59
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
"hidePrompt": false "hidePrompt": false
}, },
"source": [ "source": [
"### 2. Données" "### 2. Base de données"
] ]
}, },
{ {
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
"source": [ "source": [
"# Import des librairies\n", "# Import des librairies\n",
"import pandas as pd\n", "import pandas as pd\n",
"import matplotlib as plt" "import matplotlib.pyplot as plt"
] ]
}, },
{ {
...@@ -161,8 +161,13 @@ ...@@ -161,8 +161,13 @@
"# Les lignes de commentaires sont ignorées\n", "# Les lignes de commentaires sont ignorées\n",
"# Le séparateur de champs utilisé dans la base de données est la virgule (,)\n", "# Le séparateur de champs utilisé dans la base de données est la virgule (,)\n",
"# La colonne des dates est parsé et mise en index\n", "# La colonne des dates est parsé et mise en index\n",
"data = pd.read_csv('weekly_in_situ_co2_mlo.csv', sep=',', comment='\"', header=None, names=[\"date\", \"CO2\"]\n", "date_parser = lambda dates: [pd.datetime.strptime(d, '%Y-%m-%d') for d in dates]\n",
" , parse_dates=['date'])\n", "\n",
"data = pd.read_csv('weekly_in_situ_co2_mlo.csv', sep=',', comment='\"', header=None,\n",
" names=[\"date\", \"CO2\"])\n",
"data['date'] = pd.to_datetime(data['date'], format='%Y-%m-%d')\n",
"\n",
"# Les dates sont passées à l'index du dataframe\n",
"data.set_index('date', inplace=True)\n", "data.set_index('date', inplace=True)\n",
"data.shape" "data.shape"
] ]
...@@ -171,9 +176,9 @@ ...@@ -171,9 +176,9 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Les 44 premières colonnes de commentaires du fichier brut n'ont pas été prises en compte (commande `comment='\"'`). \n", "Les 44 premières lignes de commentaires du fichier brut n'ont pas été prises en compte (commande `comment='\"'`). \n",
"La base de données est composée de 3156 mesures et de 2 colonnes :\n", "La base de données est composée de 3156 mesures et de 2 colonnes :\n",
"* date : date de relevé. Un relevé par semaine.\n", "* date : date de relevé. Avec un relevé par semaine.\n",
"* CO2 : concentration de CO2 en *ppm*." "* CO2 : concentration de CO2 en *ppm*."
] ]
}, },
...@@ -265,21 +270,21 @@ ...@@ -265,21 +270,21 @@
"hidePrompt": false "hidePrompt": false
}, },
"source": [ "source": [
"L'inspection visuelle de la base de données montre que le fichier est bien formé et ne comporte pas de valeurs manquantes ou aberrantes." "L'inspection visuelle de la base de données complète montre que le fichier est bien formé et ne semble pas comporter pas de valeurs manquantes ou aberrantes."
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 5, "execution_count": 4,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": [ "text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc6b878ed68>" "<matplotlib.axes._subplots.AxesSubplot at 0x7f2161c4f6a0>"
] ]
}, },
"execution_count": 5, "execution_count": 4,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
}, },
...@@ -298,9 +303,138 @@ ...@@ -298,9 +303,138 @@
], ],
"source": [ "source": [
"# Graph de la base de données complètes\n", "# Graph de la base de données complètes\n",
"data.plot()" "data.plot()\n",
"#plt.show()"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. Vérification de la \"structure\" de la base de données"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Vérifions tout de même avec un code de validation la robustesse de la base de données. Nous vérifions la présence de valeurs manquantes et le type des variables (date, float)."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"CO2 0\n",
"dtype: int64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Isolation des lignes comportant des données absentes\n",
"data[pd.isnull(data).any(axis=1)].count()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il n'y a aucune valeur manquante."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"CO2 float64\n",
"dtype: object"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Vérification du type de la variable CO2\n",
"data.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype('<M8[ns]')"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Vérification du type de l'index\n",
"data.index.dtype"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Les dates passées à l'index du dataframe est du type `<M8[ns]`. C'est bien un type `datetime64`."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment