Created
October 1, 2022 17:09
-
-
Save AhmedCoolProjects/07432f580905465dd63a5cc64b096043 to your computer and use it in GitHub Desktop.
maintenance-ocp.ipynb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"provenance": [], | |
"collapsed_sections": [], | |
"authorship_tag": "ABX9TyP97f+ZdaIH2+MxPIvEPeVq", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
}, | |
"language_info": { | |
"name": "python" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/AhmedCoolProjects/07432f580905465dd63a5cc64b096043/maintenance-ocp.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"id": "KX1Oji0g_IF1" | |
}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"dataset_path = \"/content/21_02_2019_lcmp_unique_pdm_b8.xlsx\"" | |
], | |
"metadata": { | |
"id": "kNA1uB1V_RPQ" | |
}, | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df = pd.read_excel(dataset_path)" | |
], | |
"metadata": { | |
"id": "dPffLthA_pM5" | |
}, | |
"execution_count": 3, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.head()" | |
], | |
"metadata": { | |
"id": "1eODCexy_uuP", | |
"outputId": "b2b726a7-56a6-4c04-9911-573a0dbb04ca", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 476 | |
} | |
}, | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Ronde Activity Codification Asset N Plan \\\n", | |
"0 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-M Q1-BIS-BF1-M \n", | |
"1 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-R Q1-BIS-BF1-R \n", | |
"2 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-TAM01 Q1-BIS-BF1-TAM01 \n", | |
"3 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-V Q1-BIS-BF1-V \n", | |
"4 BF1 AJIAM.TCM-BF1 JL-MP-HE-Q1-BIS-BF1-ACC Q1-BIS-BF1-ACC \n", | |
"\n", | |
" Etat Ligne FULL DESCRIPTION Fré \\\n", | |
"0 M Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-... M \n", | |
"1 M Q1-BIS-BF1-R : Mesure de vibration - RMS et te... M \n", | |
"2 M Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e... M \n", | |
"3 M Q1-BIS-BF1-V : Prendre une image thermographique M \n", | |
"4 M Q1-BIS-BF1-ACC : Prendre une image thermograph... T \n", | |
"\n", | |
" Numero des ouvriers Temps pour la tache MH TSD \n", | |
"0 2 0.2 0.4 TSD-1-0005 \n", | |
"1 2 0.2 0.4 TSD-1-0021, TSD-1-0005 \n", | |
"2 2 0.2 0.4 NaN \n", | |
"3 2 0.1 0.2 NaN \n", | |
"4 2 0.2 0.4 TSD-1-0003 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-49449570-bf5f-46de-aca6-93639f969838\">\n", | |
" <div class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Ronde</th>\n", | |
" <th>Activity Codification</th>\n", | |
" <th>Asset N</th>\n", | |
" <th>Plan</th>\n", | |
" <th>Etat Ligne</th>\n", | |
" <th>FULL DESCRIPTION</th>\n", | |
" <th>Fré</th>\n", | |
" <th>Numero des ouvriers</th>\n", | |
" <th>Temps pour la tache</th>\n", | |
" <th>MH</th>\n", | |
" <th>TSD</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-M</td>\n", | |
" <td>Q1-BIS-BF1-M</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>0.4</td>\n", | |
" <td>TSD-1-0005</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-R</td>\n", | |
" <td>Q1-BIS-BF1-R</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-R : Mesure de vibration - RMS et te...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>0.4</td>\n", | |
" <td>TSD-1-0021, TSD-1-0005</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-TAM01</td>\n", | |
" <td>Q1-BIS-BF1-TAM01</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>0.4</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-V</td>\n", | |
" <td>Q1-BIS-BF1-V</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-V : Prendre une image thermographique</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.1</td>\n", | |
" <td>0.2</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.TCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-ACC</td>\n", | |
" <td>Q1-BIS-BF1-ACC</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-ACC : Prendre une image thermograph...</td>\n", | |
" <td>T</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>0.4</td>\n", | |
" <td>TSD-1-0003</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-49449570-bf5f-46de-aca6-93639f969838')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
" \n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n", | |
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" \n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" flex-wrap:wrap;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-49449570-bf5f-46de-aca6-93639f969838 button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-49449570-bf5f-46de-aca6-93639f969838');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
" </div>\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 4 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"# Preprocessing Data" | |
], | |
"metadata": { | |
"id": "KCF-YjUjWlne" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.shape" | |
], | |
"metadata": { | |
"id": "HF5wq57l_vbn", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "9d143625-2b75-4f48-adb1-86e16ceb214b" | |
}, | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"(587, 11)" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 5 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# deleting not used columns\n", | |
"df.drop([\"MH\", \"TSD\"], axis = 1, inplace = True)\n", | |
"\n", | |
"df.shape" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "G02fNgqMc57Z", | |
"outputId": "b364d7bd-1c8f-4082-9ef4-87c13c48f31e" | |
}, | |
"execution_count": 6, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"(587, 9)" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 6 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# renaming columns\n", | |
"cols = [\"Lign\", \"ActivityCode\", \"Asset\", \"Plan\", \"Lign Status\", \"Description\", \"Frq\", \"EmployesNbr\", \"TimeNeeded\"]\n", | |
"df.columns = cols\n", | |
"\n", | |
"df.columns" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "Oc5kdU-DZb_4", | |
"outputId": "c108aa84-99f3-43fd-cb0f-a11ed137d098" | |
}, | |
"execution_count": 7, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"Index(['Lign', 'ActivityCode', 'Asset', 'Plan', 'Lign Status', 'Description',\n", | |
" 'Frq', 'EmployesNbr', 'TimeNeeded'],\n", | |
" dtype='object')" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 7 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# how many lings we have?\n", | |
"print(\"ligns: \", len(df.Lign.value_counts()))\n", | |
"# How many machines we have?\n", | |
"print(\"Machines: \", len(df.ActivityCode.value_counts()))\n", | |
"# How many plans we have?\n", | |
"print(\"Plans: \", len(df.Plan.value_counts()))\n", | |
"# Statics for Etat Ligne & Frequance & Nbr employes & time?\n", | |
"print(\"Lign Status: \", len(df[\"Lign Status\"].value_counts()))\n", | |
"print(\"Frequances: \", len(df.Frq.value_counts()))\n", | |
"print(\"Employes Nbr: \", len(df.EmployesNbr.value_counts()))\n", | |
"print(\"Time Needed: \", len(df.TimeNeeded.value_counts()))\n" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "nJr80pWuYDZw", | |
"outputId": "d4373d27-f012-4e80-a09c-0f6f982f250f" | |
}, | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"ligns: 20\n", | |
"Machines: 76\n", | |
"Plans: 255\n", | |
"Lign Status: 2\n", | |
"Frequances: 6\n", | |
"Employes Nbr: 1\n", | |
"Time Needed: 7\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"So, we have 20 ligns, with 76 Machines and 255 plans. The lign status can be boolean and the Frequence has 6 possible values. For all those operations we need a fix number of employes _(2)_ and the time needed can varie between 7 values." | |
], | |
"metadata": { | |
"id": "QPyUgAri50D8" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.head()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 354 | |
}, | |
"id": "mTCyZ9PY4F8O", | |
"outputId": "f4d18659-e741-46cb-da73-30f109a87c4b" | |
}, | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Lign ActivityCode Asset Plan \\\n", | |
"0 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-M Q1-BIS-BF1-M \n", | |
"1 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-R Q1-BIS-BF1-R \n", | |
"2 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-TAM01 Q1-BIS-BF1-TAM01 \n", | |
"3 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-V Q1-BIS-BF1-V \n", | |
"4 BF1 AJIAM.TCM-BF1 JL-MP-HE-Q1-BIS-BF1-ACC Q1-BIS-BF1-ACC \n", | |
"\n", | |
" Lign Status Description Frq \\\n", | |
"0 M Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-... M \n", | |
"1 M Q1-BIS-BF1-R : Mesure de vibration - RMS et te... M \n", | |
"2 M Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e... M \n", | |
"3 M Q1-BIS-BF1-V : Prendre une image thermographique M \n", | |
"4 M Q1-BIS-BF1-ACC : Prendre une image thermograph... T \n", | |
"\n", | |
" EmployesNbr TimeNeeded \n", | |
"0 2 0.2 \n", | |
"1 2 0.2 \n", | |
"2 2 0.2 \n", | |
"3 2 0.1 \n", | |
"4 2 0.2 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-5a8bb15a-5e70-49ff-b441-dc864264fed1\">\n", | |
" <div class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Lign</th>\n", | |
" <th>ActivityCode</th>\n", | |
" <th>Asset</th>\n", | |
" <th>Plan</th>\n", | |
" <th>Lign Status</th>\n", | |
" <th>Description</th>\n", | |
" <th>Frq</th>\n", | |
" <th>EmployesNbr</th>\n", | |
" <th>TimeNeeded</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-M</td>\n", | |
" <td>Q1-BIS-BF1-M</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-R</td>\n", | |
" <td>Q1-BIS-BF1-R</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-R : Mesure de vibration - RMS et te...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-TAM01</td>\n", | |
" <td>Q1-BIS-BF1-TAM01</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-V</td>\n", | |
" <td>Q1-BIS-BF1-V</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-V : Prendre une image thermographique</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.TCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-ACC</td>\n", | |
" <td>Q1-BIS-BF1-ACC</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-ACC : Prendre une image thermograph...</td>\n", | |
" <td>T</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5a8bb15a-5e70-49ff-b441-dc864264fed1')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
" \n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n", | |
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" \n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" flex-wrap:wrap;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-5a8bb15a-5e70-49ff-b441-dc864264fed1 button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-5a8bb15a-5e70-49ff-b441-dc864264fed1');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
" </div>\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 9 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df[\"Lign Status\"].value_counts()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "YmZkUb1w9Ghz", | |
"outputId": "967298dd-1d9f-4caa-806d-79c6e16e21c3" | |
}, | |
"execution_count": 10, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"M 570\n", | |
"A 17\n", | |
"Name: Lign Status, dtype: int64" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 10 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.Frq.value_counts()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "dLMqgN729OZc", | |
"outputId": "9e8e6d02-9262-44cc-cdc1-f12ead05fca0" | |
}, | |
"execution_count": 11, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"T 320\n", | |
"S 145\n", | |
"M 73\n", | |
"B 32\n", | |
"X 14\n", | |
"Z 3\n", | |
"Name: Frq, dtype: int64" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 11 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.TimeNeeded.value_counts()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "q61iQJQK9T28", | |
"outputId": "3b75ddb3-045a-48b7-df6c-bd4ab9749433" | |
}, | |
"execution_count": 12, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"0.20 279\n", | |
"0.10 153\n", | |
"0.30 83\n", | |
"0.50 58\n", | |
"0.15 12\n", | |
"0.70 1\n", | |
"3.00 1\n", | |
"Name: TimeNeeded, dtype: int64" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 12 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.head()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 354 | |
}, | |
"id": "kr7mE4NiKHpf", | |
"outputId": "a72efcc9-55bd-4ebc-82ab-2d35dcc90030" | |
}, | |
"execution_count": 13, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Lign ActivityCode Asset Plan \\\n", | |
"0 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-M Q1-BIS-BF1-M \n", | |
"1 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-R Q1-BIS-BF1-R \n", | |
"2 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-TAM01 Q1-BIS-BF1-TAM01 \n", | |
"3 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-V Q1-BIS-BF1-V \n", | |
"4 BF1 AJIAM.TCM-BF1 JL-MP-HE-Q1-BIS-BF1-ACC Q1-BIS-BF1-ACC \n", | |
"\n", | |
" Lign Status Description Frq \\\n", | |
"0 M Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-... M \n", | |
"1 M Q1-BIS-BF1-R : Mesure de vibration - RMS et te... M \n", | |
"2 M Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e... M \n", | |
"3 M Q1-BIS-BF1-V : Prendre une image thermographique M \n", | |
"4 M Q1-BIS-BF1-ACC : Prendre une image thermograph... T \n", | |
"\n", | |
" EmployesNbr TimeNeeded \n", | |
"0 2 0.2 \n", | |
"1 2 0.2 \n", | |
"2 2 0.2 \n", | |
"3 2 0.1 \n", | |
"4 2 0.2 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-5e7b9484-a86d-496d-ab39-8a54b886e342\">\n", | |
" <div class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Lign</th>\n", | |
" <th>ActivityCode</th>\n", | |
" <th>Asset</th>\n", | |
" <th>Plan</th>\n", | |
" <th>Lign Status</th>\n", | |
" <th>Description</th>\n", | |
" <th>Frq</th>\n", | |
" <th>EmployesNbr</th>\n", | |
" <th>TimeNeeded</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-M</td>\n", | |
" <td>Q1-BIS-BF1-M</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-R</td>\n", | |
" <td>Q1-BIS-BF1-R</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-R : Mesure de vibration - RMS et te...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-TAM01</td>\n", | |
" <td>Q1-BIS-BF1-TAM01</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e...</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-V</td>\n", | |
" <td>Q1-BIS-BF1-V</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-V : Prendre une image thermographique</td>\n", | |
" <td>M</td>\n", | |
" <td>2</td>\n", | |
" <td>0.1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.TCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-ACC</td>\n", | |
" <td>Q1-BIS-BF1-ACC</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-ACC : Prendre une image thermograph...</td>\n", | |
" <td>T</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5e7b9484-a86d-496d-ab39-8a54b886e342')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
" \n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n", | |
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" \n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" flex-wrap:wrap;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-5e7b9484-a86d-496d-ab39-8a54b886e342 button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-5e7b9484-a86d-496d-ab39-8a54b886e342');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
" </div>\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 13 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## Understanding values\n", | |
"- **Lign**: the line code in the factory\n", | |
"- **ActivityCode**: the maintenance ActivityCode\n", | |
"- **Asset**: The Specific machine concerned by the maintenance operation\n", | |
"- **Plan**: the specific piece of the machine to be verified\n", | |
"- **Lign status**: Boolean if the should be lign:\n", | |
" - **M**: Marché\n", | |
" - **A**: Arrét\n", | |
"- **Description**: descreption for the operation process\n", | |
"- **Frq**: frequency of the operations, how many times should be verified per year\n", | |
" - **T**: 1 d\n", | |
" - **B**: 15 d\n", | |
" - **M**: 30 d\n", | |
" - **S**: 182 d\n", | |
" - **X**: 365 d\n", | |
" - **Z**: 730 d\n", | |
"- **EmployesNbr**: number of employes needed for this operation\n", | |
"- **TimeNeeded**: how much time needed for this operation per employe." | |
], | |
"metadata": { | |
"id": "RENGctXI-Giu" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"## Modifying Values\n", | |
"we are going to change the abstract values to a numerecal values in the Frq column.\n" | |
], | |
"metadata": { | |
"id": "WaHYExZACtNW" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.Frq = df.Frq.replace([\"T\", \"B\", \"M\", \"S\", \"X\", \"Z\"], [1,15,30,182,365,730])" | |
], | |
"metadata": { | |
"id": "O7v8dY01C42_" | |
}, | |
"execution_count": 14, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# check changes\n", | |
"df.Frq.value_counts()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "g2aRSazRDcnL", | |
"outputId": "4358d35b-dfae-4dbc-9e81-b84fad65e595" | |
}, | |
"execution_count": 15, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"1 320\n", | |
"182 145\n", | |
"30 73\n", | |
"15 32\n", | |
"365 14\n", | |
"730 3\n", | |
"Name: Frq, dtype: int64" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 15 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"# Data Visualization" | |
], | |
"metadata": { | |
"id": "3s-Cyssm-jPy" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"import seaborn as sns\n", | |
"import matplotlib.pyplot as plt" | |
], | |
"metadata": { | |
"id": "F_heMLXX9p3B" | |
}, | |
"execution_count": 16, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df[\"Lign Status\"].value_counts().plot.pie(autopct=\"%.1f%%\", explode=[0.05]*2)\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 248 | |
}, | |
"id": "5kjvbpNJ-p8S", | |
"outputId": "f77b87a1-ba02-46a8-a720-6a9bcffe3061" | |
}, | |
"execution_count": 17, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPUAAADnCAYAAADGrxD1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAZRklEQVR4nO3deXwV5b3H8c+Tk4SwRhERUGQUyqIobhRt1SpX66sdLS64b1VvW62tWm3r9OXVi72Vjl7rWrW1Wr3uelVcOohVW+t6rVtxRVAcFVeIkADZk+f+MRNJQpZJcuY8M3N+79frvAKHHM8X9Ztnzswzz6O01gghsqPEdAAhRH5JqYXIGCm1EBkjpRYiY6TUQmSMlFqIjJFSC5ExUmohMkZKLUTGSKmFyBgptRAZI6UWImOk1EJkjJRaiIyRUguRMVJqITJGSi1ExkiphcgYKbUQGSOlFiJjpNRCZIyUWoiMkVILkTFSaiEyRkotRMZIqYXImFLTAUR8LMerAIYBwzs9KoAmoD581AE1QDWwxnftJiOBRV4o2UsrvSzH2wL4GjC509etCMrb3x/a64EPgHeBZeHXtl9/5Lt268CSizhJqVPCcrytgW8BewM7E5R3hIEoDcBy4GXgaeAp37WXGMghuiGlTijL8SYSlLjtMcFsoh59ATwDPBU+Fstobo6UOiEsxysD9gPmAgcAW5pNNCDVwCLgLuAR37UbDOcpKlJqgyzHyxEU+WhgDrCJ2USxqAYeICj4475rNxvOk3lSagMsx5sOnAgcC4w1HKeQVgH3AXf4rv2U6TBZJaUuEMvxFHAg8EtgT8NxkuAt4CrgFt+160yHyRIpdcwsxysHjgN+DkwzHCeJvgT+CFzpu/bnpsNkgZQ6JpbjjQBOBc4ExhmOkwb1wE3AJb5r+4azpJqUOs8sxxsO/Ao4HTPXkdOuGbgFOM937c9Mh0kjKXWehJ+Zvw/MB8aYTZMJawn+XV4ul8T6RkqdB5bj7U5w0mem6SwZtBz4he/a95sOkhZS6gGwHG8scDHBiTBlOE7W/R04y3ft10wHSTopdT+Ek0bOAc4nuAtKFEYL8Afgl75r15oOk1RS6j6yHG8CcBtyrdmkd4Bjfdd+2XSQJJJS94HleEcRjBSVprMImoALCC6Byc0j7UipI7AcbxhwDXCC6SxiI/8Ajvdd+yPTQZJCSt0Ly/G+DtwBTDSdRXRrDfAj37XvMR0kCaTUPbAc7+fAb5Fln9LiOuCnvmu3mA5ikpS6C+G9zX8ETjKdRfTZIuAI37XXmg5iipS6E8vxNiO4PfBbprOIflsM2L5rf2w6iAlS6nYsx9sGeJRg/S+Rbh8TFHux6SCFJut+hyzH2xl4Dil0VmwJPG053ndMByk0KTVgOd5sgksjciNGtgwHHrYc7wemgxRS0R9+W463L7CQYIF7kU0aOM137T+aDlIIRV1qy/FmAY8j87eLgSa4lv0n00HiVrSlthxvR+BJYFPDUUThaOBk37VvNh0kTkVZasvxJhPsLjHadBZRcC3A4b5rLzAdJC5FV+rwLqungfGmswhjGggudz1hOkgciqrUluONISj0JNNZhHHrgH2yePtm0ZQ6XKr3KWCW6SwiMT4CdvVde6XpIPlUTNepr0QKLToaD9wVrmSTGUVRasvxTiBYg1uIzmYT3ImXGZk//LYcbwbwPDDYdBaRaIf7rn2v6RD5kOlSW463CcHm6NuaziISbx0wy3ftt0wHGajMHn6Hi+vfhhRaRDMMWBBul5RqmS01cC5gmw4hUmUycK3pEAOVycNvy/GmENwoP8h0FpFKtu/aC02H6K/MlTo87H4S2NtwFJFeHwLb+669znSQ/sji4fcPkEKLgdmaYHO+VMrUSB3ubfU2sti+GLhWYE/ftZ83HaSvsjZS/x4ptMiPEuCGcHpxqmSm1JbjHQwcajqHyJTtgPNMh+irTBx+W443BFhKsNicEPnUCEzxXds3HSSqrIzUZyGFFvEoJ9iILzVSP1JbjjcSWI58lhbxaQGm+a69zHSQKLIwUjtIoUW8csCFpkNEleqR2nK8LYD3kTuwRPw0MMN37ddNB+lN2kfqnyOFFoWhgF+bDhFFakdqy/FGAT4w1HAUUVx2S/q6Zmkeqc9GCi0KL/GfrVM5UluON4hgV8PNTGcRRUcDk33Xftd0kO6kdaQ+DCm0MEMBp5kO0ZO0lrqodjEUiXNSOIsxkVJXasvxvgbsYzqHKGqbAkeZDtGd1JUaGaVFMpxsOkB3UnWizHK8MmAFsrGdSIYpvmsvNR2is7SN1HOQQovkSORonbZSJ/Jfoihax5gO0JXUHH5bjjcMqCK4FU6IpJjhu/ZrpkO0l6aRej+k0CJ5DjQdoLNeS62UmqiUGhT+eh+l1BlKqU3ij7aR7xp4TyF6k7gNI6KM1PcBLUqpScD1BNt/3hFrqq59x8B7CtGb3S3HS9TsxiilbtVaNwOHAFdrrX8BjI03VkeW4+0IbFXI9xQiohISNuBEKXWTUupo4ETgL+FzZfFF6pIceoskS9QheJRSnwTsAVyktX5fKbUNcGu8sTYipRZJdoDleDnTIdok/pJWeClrNVBqOosQPZjpu/ZLpkNAhKIopd4nuIe0A611ofZ93gkptEi+XYB0lBrYrd2vK4DDgZHxxOnSzgV8LyH6axfTAdr0+plaa13V7vGx1voKCntiYKcCvpcQ/ZWYwSfK5JNd2j12U0qdSmEPh6XUIg12SMrJsijl/F27XzcTrLN9RDxxOrIcrxTYvhDvJcQADQamAW+YDhKl1KdorZe3fyK8rFUI2wGDCvReQgzUziSg1FGuU98b8bk4yKG3SJNEnCzrdqRWSk0lOPStVEq13/d5BMFZ8F4ppTRwu9b6uPD3pcCnwAta6yh3t+wY5X2ESIhEfFTs6fB7CsFtZZsAB7V7fi3R1wlbD0xXSg3WWtcB+xOs1x1VoQ7zhciHgt4T0Z1uS621fhB4UCm1h9b6+QG8x0KCS2D3AkcDdwJ7RXyt7Dkt0iQRpY7ymfpVpdTpSqlrlVJ/bnv04T3uAo5SSlUQHE6/0IfXyp1ZIk1GhotjGhXl7PetwBLgAIJd/44F3o76Blrr15RSFsEovTDq6yzHKwHGRP3+KGpeepB1ix8FDcNmHMCImXNY+eDFNH25AoDW+vWUVAxl3ElXb/TaVQuvoO69F8kNqWTcKdd+9fzqJ2+ibvnLlI/ehlEHngPAujf/TmttDSNmzslnfJF8iuD/2Y9MhogyUk/SWp8PrNda/w/BofSsPr7PQ8ClBIfeUW1GsNl3XjSu9Fm3+FHGnHAZY0++mrr3/knT6k/YfM65jDvpasaddDVDpnyDIZO/0eXrh+2wH6MP77g3WmvDeho/e49xJ/8elSujcaVPa1MD619/jOG7JOpuPFE4eR2I+iPS/dTh1zVKqelAJX1fpvfPwIVa675s2J3X1SSaqlZQPnYKJWUVqJIcg8ZPp3bpc1/9udaa2iXPMHTa3l2+vmL8dHKDh3d6VqFbm9Fa09rUgCrJUfPP+xm+y0GonNyDUqSMf66OUurrlVKbAv9BMOK+BVzclzfRWq/QWl/Vx2yj+vj9PSofNYGGFW/SUldDa1M9dctfoqVm1Vd/3rDiTXJDN6FsZPRzcyWDhjB44m58evMZ5IZtiho0lMZPlzJk8h75jC7SxfhIHWU4eUJrvRp4CtgWos8o01oP6+K5J4EnI7w8ryN12ajxjJg1ly/uPh9VVkH56G1BbfiZtv6tf3Q7SvekctZcKmfNBaDqkauo3PNY1i5+lPr3X6VstMUm30jslksiHsY3m4i68GBnhZhRlvfpocNnfJux37+SMcdeTEnFsK9GZd3aQu3S5xkyte+lbtP4+XtorSkbuRW1S55h84Mdmld/RtOXfbksLzLA+LTmWGeUDVDel2RpWb+G3NBNaK75gtqlzzP2+EsBqPf/RdlmW1E6ov9H/Guevo2RB/wEWptBtwZPKoVubshHdJEeib6klY8ZZQOR91KvfGA+rXVroSTHyP1PpaQi+HSw/u2nNjr0bl5bRdWiq9giPOO98qFLaPjwdVrqalhxzYlU7nksw2d8G4Dapc9TPmYSpcODTwzlo7flkxtPp2y0FRzmi2Ji/Axpr2uU5WFGWb9YjncYhbtxpNi0AO8A7wKthrNkzcO+a/dlclbe9XT4/QPgSa3180opBdwIHAZ8AHxfa/1KzNmSvSJiuuUIbmudQHCr4OL2D9+11zGvcjiwAzCDYGafMpQ1bSYxj/m9fM91zKuObYJKT4cKZwI3h78+muA/7rYE94xeSfT52/0lI0j8hhJMJGo/mUhbjrcc7viq5Efm/v78xWV/2pTg/4Gdwq/bYXBvs4+qWznhgTo+X6dRCn64Sxln7t7xHNXqOs3JD9Xx3petVJTCn+cMZvroHCvXt3LI3XWsqdf8ZvYgDp4afAyec1ct19kVjBse+xZzDxDjrLOeSt2stW6beHIgcIvWugp4XCl1SVyB2pGR2gwFTAwfhwLc3bIvd7fsWw28RlD034+i+o0F5Rc0jy9ZOY2g5G2PglzSKS2B3327gl3G5ljboNn1+vXsP7GU7TbfMAlx/tMN7LRFjgVHDmHJqhZOX1jPEycM5c43mjh1tzIOnVbGd2+v5eCpZTz8ThM7jykpRKEhWEEoNj2VulUpNZZgze1/Ay5q92eD4wwVklInSyXB0dleAKuoZK/GK1uApQRF/xtw+c9K7/3kzNL7x9BxVJ9CHqf8AowdXsLYcILf8EGKaZuX8HGNZrvNN3zPW6tacb4ZHExMHZXDX9PK5+taKStR1DZBQzPkSqC5VXPFC408fPSQfEbsibFSX0CwjnEOeEhr/SaAUupbwPIeXpcvdQV4DzEwOYJ1uaYBRwFc3jyXy5vnrmTDZ/RHtlWfvH1f+bzcpmrd9nQc1fOye6q/ppVXP21h1lYdf27M2KKE+99uZq8Jpfzz4xY+WKNZUaM5Zocyjrm/jutfbuTi/Sq49sVGjt+xjCFlBTttEOt1zh7PfocrlQwPZ5S1PTc0fN26OINZjjcd6MtccZFsjQR397WV/V+Xl12z6pDcsxYdiz6RPpyUW9eo+dbN6zlvr0EcOq3jJeKaBs2Zi+p59dMWdtgix5JVLfzpoMHsNGZD+VfXaY64t5YFRw7hZ4vqWV2vOWePcvYYH+uVqdHMq14Z5RuVUgcDC4BpWuslkV6T1G13wu1BV/X6jSLtPqbdmfeZasmy28vnV5Sr5h3ZUPQdCU7qddDUojnwzloOmFjK2Xv0PJFLa802V67jtdOGMWLQhp8ZZz9az/emlLKsqpXyHMzdroxD76nl0eM2ert80UAZ86pbonyzUupuYBzwN631f0Z5jfEL5d3xXbvKcrwGEjDtTsRqy/DxXYAX9VQmN9xSR3Cp7V/A7TlafnlH+UXrZpUsmURY9FatZ5zyUP3W00blui30mnrNkDIozylueKWJvSeUdij0sqoWVtS0so9VyuLPGqgoVSgFdU1d/uPyZU0fCj0M2BPYF3gYSHepQ58RXEsVxWUwMDN80EKOIxsv0IBPMKK/subZO/+v+rXbLxpWzvK73mgaVFHK4Iv3r/iyqlZPKFGUnbpbOW+vbOHEB+pRCrbfvIQbv9fx/O55f2vgotnBD4Sjdyjj4LvqcJ9t5Nf7xDqO9OXocw6wSGu9VClVpZTaVWv9cm8vinT4rZTakqBcX/0Q0Fo/1Ydw/WI53nME2+gK0Z0aNlxqW1zJujcWlF/QsG3JZ1Pp+Fnd+C2RoSeZV71vlG9USv0FuFJr/ZhS6gxga631z3t7XZRdLy8GjiS4j7rtsEET3IoZt08K8B4i3UYQHKLuCVDNMGY3XtYKLCMo+lPAVaflHlxxbtndW7Ch5DsBUyn80eqKKN+klBoJzAZ2CJfazgFaKfUL3ctIHOUvdDAwRWtt4najTw28p0i/EoJr41MIt4i6rmUO17XMqWLDSblLx6sv3rq//AI2VzWdL7XFuatr1Htx5wK3aq1/1PaEUuofBPMEehxQo5R6OcHtZCZK/aGB9xTZtRnB6Dcb4CM9mpkNf2hiw6U2D5g/v/SGL44p/dt4NkyemQFMItr6A735IOL3Hc3GKwzdFz7fY6mj3KV1H8Ff6gnaFVtrfUbEcP1mOd7+wF/jfh8huvAp7S617ayWvXN7+UWDhqjGtptc2i61dV64rjf7MK/6H/mN2lGUUp/Y1fPhyqKxkmvVImHqgDcJi56jZfFNZZdU7517fSIdD9+tHv4Zo5hXXRVnyMROPmljOZ6PXNYSyfYBQdGP9l27lnmVlQSjePuiTwdqmFcd+1n4KGe/X2fjmyuqCeaF/ya8cytOryClFsk2ARjsu3YtAPOqq4Gnw0dgXmWOYGZY7KKcKHuE4FLWHeHvjwKGEEwMuZmOSx3F4WXgkJjfQ4iB6nlSSDCLrCA7d0Qp9X5a6/b77r6ulHpFa72LUuq4uIK1E/cKK0Lkw0umA7SJcoo+p5T6ettvlFIz2XBvbKz3hYZ6nRYnRAK8aDpAmyil/nfgRqXU+0opn2Ctsh+Et2D+Ns5wAL5rf4FcrxbJ1gj83XSINr0efmutXySYqlYZ/r663R/fE1ewTp4ATirQewnRV8/4rh3r+gJ90dNqosdprW9TSp3d6XkAtNaXxZytvUVIqUVyPWI6QHs9jdRtd4l3NWOm0Be3HyM4A5/Xda6EyJNElbpfk0+UUmdpra+IIU+3LMd7BvhmId9TiAg+8l17a9Mh2uvvBPWze/+WvHvQwHsK0ZtFpgN01t9Sm9itYYGB9xSiN4k69Ib+l7rgE8Z9136XYN0qIZKiDnjcdIjOejr7vZauy6sozGL+XbmXYGK8EElwn+/aa02H6KzbkVprPVxrPaKLx3CttakFC29C9tgSyXGD6QBdKcjGQfniu/aHJPAzjChKy3zXjnWxg/5KValDfzAdQAiC6dKJlMZSL0TmgguzmtmwzXPipK7Uvmu3An8ynUMUtb/4rv256RDdSV2pQzdQmNs+hehKogeVVJbad+3PkBlmwoylJHAWWXupLHWokHeJCdHm1+FHwMRKbal9134OubwlCmsJcKfpEL1JbalD52FgyqooWokfpSHlpfZd+1WCrUiEiNtbwN2mQ0SR6lKHzmfDbpxCxOXCNIzSkIFS+669BLjNdA6RaW8A/2s6RFSpL3VoHsGKjkLE4QLftVNz7iYTpfZd2weuM51DZNJffddO1QIdmSh16HwKtK2JKBoNwE9Mh+irzJQ6vFn9VNM5RKZc4rv2MtMh+iozpQbwXXshctJM5MdSYL7pEP2RqVKHzgK+MB1CpJoGTvFdu950kP7IXKl9164CzjCdQ6TaNb5rP2M6RH9lrtQAvmvfjdzFJfpnOeCYDjEQmSx16DSgynQIkSr1wGG+a683HWQgMltq37U/BY5FVh8V0f3Yd+1/mQ4xUJktNYDv2o8CvzGdQ6TCjb5r32Q6RD5kutShC4G/mg4hEu0VUjjJpDv92vUybSzHGwm8AEwynUUkzmpgV9+13zcdJF+KYaTGd+0vge8BNaaziETRwPFZKjQUSakBfNd+GzgGOXEmNjjXd23PdIh8K5pSA4T/AWV+uACY77v2f5sOEYei+EzdmeV4ZwBXms4hjLnGd+3MnBjrrKhG6ja+a19FymcNiX67Ffip6RBxKsqRuo3leBcCF5jOIQrmAWCu79qZXtOuqEsNYDneJcAvTOcQsXscONB37QbTQeJWlIff7fmu/UvgatM5RKwWAQcXQ6FBSg2A79pnAL82nUPE4kbgoLTfpNEXRX/43Z7leMcT7KhZbjqLyIv/9F276H5YS6k7sRxvb2ABMNJ0FtFvTcAPfde+2XQQE6TUXbAcbzLgIXPF02gtwT3Rj5kOYop8pu6C79pLgd2B1C5pU6Q+AvYq5kKDlLpb4Vpn+wF/NJ1FROIBO/uuvdh0ENPk8DsCy/EOIjiLurnpLGIjzcCvgN+laWucOEmpI7IcbwuCYtums4ivvAsc57v2C6aDJImUuo8sx/sxcCkw2HSWInc9cHYxXX+OSkrdD5bjTSXYCWRX01mK0IfA6b5r/8V0kKSSE2X9EO6JvQdwLrDOcJxiUQ/8FzBNCt0zGakHyHK8ccAlBMsRi3gsIDjU9k0HSQMpdZ5YjvdNgs/au5vOkiFvA2cW+3XnvpJS55nleIcDvwUmms6SYlXARcDVvms3mw6TNlLqGFiOVwZ8HzgHmGI2Tap8CFwG3CBntftPSh0jy/EUwXXtc4B9zKZJtDcIzkvcKSPzwEmpC8RyvF2Bs4EjgFLDcZLiGcAFFspssPyRUheY5XjjCRa+Ox4YYziOCauAe4BbZCZYPKTUhliOVwLsDRwJHEa255WvJ9gv/Hbgr3KIHS8pdQJYjpcDZhMcmh9KNhZoaCbYmPB24EE58VU4UuqECc+czwb2BfYEZpKe5ZXeIVi18zHgSd+1qw3nKUpS6oSzHK+CoNh7EZT8G0Cl0VCBFmAx8CzBCa9nfNf+xGwkAVLq1Ak/i08HtgemElwHnwJsQzxl/xJYSjAKt/+6zHft+hjeTwyQlDpDLMerBCaEj82AIcDQbr6WEKznVdPN40vgXd+1VxX2byEGSkotRMbIrZdCZIyUWoiMkVILkTFSaiEyRkotRMZIqYXIGCm1EBkjpRYiY6TUQmSMlFqIjJFSC5ExUmohMkZKLUTGSKmFyBgptRAZI6UWImOk1EJkjJRaiIyRUguRMVJqITJGSi1ExkiphcgYKbUQGSOlFiJjpNRCZIyUWoiMkVILkTFSaiEy5v8BhQmcYs7OckUAAAAASUVORK5CYII=\n" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df[\"Frq\"].value_counts().plot.pie(autopct=\"%.1f%%\", explode=[0.005]*6, figsize=(10,10))\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 575 | |
}, | |
"id": "pmzHiA36_VC5", | |
"outputId": "98263cd9-39ad-4b8a-a8fc-87a14f5a9930" | |
}, | |
"execution_count": 18, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 720x720 with 1 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df[\"TimeNeeded\"].value_counts().plot.pie(autopct=\"%.1f%%\", explode=[0.005]*7)\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 248 | |
}, | |
"id": "_BtNTSlJBDth", | |
"outputId": "75550a02-f069-414c-d985-da0e01c06d19" | |
}, | |
"execution_count": 19, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAADnCAYAAADRjYA8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2dd3hb1fnHP6+G5W0njjPIkjMIBkKgEMKm7GFI2YUfbQ0EaCGBsDFlqbQFM8oso+xZZkkImFFWgAKBQICYxA5ZznC2Y8t2vDTO748rJ07iIdmSrsb5PM99bEn36n5t6XvPuee8531FKYVGo0k+LGYL0Gg05qDNr9EkKdr8Gk2Sos2v0SQp2vwaTZKiza/RJCna/BpNkqLNr9EkKdr8Gk2Sos2v0SQp2vwaTZKiza/RJCna/BpNkqLNr9EkKdr8mqARkeNFZJGILBGRkk5ev0pEForIfBH5WERGmqFTExza/JqgEBEr8DBwArA7cI6I7L7Dbj8A+yml9gLeAO6KrkpNKGjza4Jlf2CJUmqZUqoNeAX4TccdlFKfKqWaAg/nAMOirFETAtr8mmAZCqzq8Hh14LmumAK8F1FFmj5hM1uAJvEQkd8B+wGHm61F0zXa/JpgqQaGd3g8LPDcdojI0cCNwOFKqdYoadP0At3t1wTLXGCsiBSISApwNjCr4w4isg/wL2CyUmqDCRo1IaDNrwkKpZQXmAZ8AFQArymlFojIbSIyObDb3UAm8LqI/Cgis7p4O00MIDp1t0aTnOiWX6NJUrT5NZokRZtfo0lS9FRfEuEsKcsHhgAOjM++42YP/LQAjUBdh21zVWmR3wzNmsihB/wSCGdJ2XBgAjASY05+WGAbjhGN5+jlW3uBjcB6YC3wC/AzUA4sqCotauybco0ZaPPHKYFWfGJg2y/wc5AJUhRQxbaLQTnwRVVp0U4BQJrYQps/TnCWlOUBRcCJwIHACHMV9chC4MPANruqtGiLyXo0O6DNH8M4S8p2xVg5NxnD8FZzFfWaNuBr4L/AB1WlRd+brEeDNn/M4Swp2w/4LYbhdzVZTqRYBDwHPK9vD8xDmz8GcJaUpQP/B/wJ2NdkOdHED3wEPAvMqCotajFXTnKhzW8izpKy3YFLgN8DOSbLMRs38CrwaFVp0Y9mi0kGtPmjjLOkzAKcCVwKHGaynFilDPhbVWnRHLOFJDLa/FHCWVImwGnAbRg58DQ98wnGReBTs4UkItr8UcBZUnY88DeS634+nHwJ/L2qtEinBQsj2vwRxFlSdgjwd3T3Plx8A0zVU4XhQZs/AjhLysYC92ME5GjCix8jW9CNVaVFtWaLiWe0+cOIs6TMBlwD3Aqkmiwn0dkIXA88W1VapL/EvUCbP0w4S8r2Bp4CfmW2liTjS4xbgZ/MFhJvaPP3EWdJWSpwC3Ateom0WfiAezFuBTxmi4kXtPn7QGBA70lgnNlaNAB8C5xdVVq03Gwh8YA2fy8IzNnfjHFvr7MhxRZu4KKq0qLXzRYS62jzh0hgae2LwPFma9F0y2PAlXq9QNdo84eAs6RsX+BNYn8tvcZgPnBWVWnRIrOFxCK6yxokzpKyc4Av0MaPJ/YCvneWlBWZLSQW0S1/DwQW4tyOMaesiU+8wB+rSoueNltILKHN3w2BoJ0XMZJraOKfm6tKi/5mtohYQZu/C5wlZQ7gNYyMOprE4TGMoKCkT0Wuzd8Jgcw6M4FjzNaiiQgzgXOSfSZAm38HnCVlWRjJJA41W4smonwJnFhVWlRvthCz0ObvgLOkrB9GCeqJZmvRRIUvgWOrSouazBZiBnqqL0AgeGc22vjJxMHAW4HxnaRDm5+tg3tvYcwLa5KLo4HXAzM7SUXSmz8Qp/8cRiugSU5OxkgQklQkvfmBO9Dz+Bq4wFlSllQxAEk94OcsKbuYJLjiK7+Ptc9diS0rj4Fn3Mq6l67D39YMgL/JTcqQXRl42k07HbfirsnY80cCYMvOZ+DptwCw8e278WxcQdroifQ7vBiAuq9eIWXASNJ3PTBKf1XEuKSqtOgxs0VEg6S7z2knkFH3YbN1RIOG72ZhzxuOajMGtQefe9fW1zbOuJ20sZM6PU5sKexy/kPbPde2YTkWm4NdLvgn61+5CX/rFvyeVtrWLCL3oLMj90dEjwedJWU/JkPNgKTs9jtLyvbCiN5L+Iuft34Tzcvmkjnh2J1e87c20bLiJ9LHBt9ai8WG39uKUn6U3wtiwf3Fi+Qccm44ZZuJHXgtMPuT0CSd+Z0lZRnA60CW2VqiQe3Hj5P76wsQkZ1ea1r8NakjJ2BxpHd6rPK2sfa5K1j7/NU0/fI1APYBw7Gm5bD22emkj9kfb+1alFI4Bo+J6N8RZYYDLwYGgxOWhG/5OuF+Erf67XY0LfkWS0YujsFjaFk5f6fXtyz8vNMeQTtDL3kaW9YAPHXrWP/yn7HnO7H3G0L/oy/eus+GN/5C/+Om4f7qVdo2LCfVuTdZeydEnpPjgRsxiq0kJEnV8jtLyk4DLjRbR7RorV5I8+JvWP3oBWycdRctK+az6e17APA1uWlb+wvpo7uOabJlDQDAnjuY1BHjaVu/dLvXmxbPIWXwGJSnBU/dWvJPKaFp0Zf4PQkTMv8XZ0nZUWaLiBRJY35nSdkw4AmzdUSTfoefx7CpzzHskqfJn3wdqSP3YsDJ1wDQtOhL0sZMRGwpnR7ra2lEeY1EuL4mN63VC7EP2JbHRPm81H/3FtmTTkd5W4FAD1n5weeN6N8VRSzAv50lZbuYLSQSJEW3P5CQ43mgv9laYoUtFZ+Tc8CZ2z3XunYxjT++R94Jl+PZtIrNH/wTREApsiedSUoH8zfMKyNzz6Ow2FOx5xegvK2seWoqaaP3w5KaGe0/J5IMBJ4BjjNbSLhJinl+Z0lZCUYwj0bTW/6vqrToZbNFhJOEN7+zpGw88D3GFI5G01vWA4WJVB8wGe75H0QbX9N3BgF3mi0inCR0y+8sKTsTI5hHowkHCji0qrToS7OFhIOENb+zpCwNqESn2taElwXAPolQEzCRu/3Xo42vCT97ANeZLSIcJGTL7ywpG4HR6qeZrUWTkGwBCqpKizaaLaQvJGrLfw/a+JrIkUECtP4J1/I7S8oOBL4yW4cm4WnCaP03mC2ktyRiy19itgBNUpBOnLf+CdXyO0vKdgd+ZmuguUYTUZqAUVWlRevNFtIbEq3lvxZtfE30iOvWP2Fa/sCqvWXoaD5NdGnGaP3XmS0kVBKp5b8KbXxN9EkDLjdbRG9IiJY/UGZrJZBQa0k1ccNaYERVaVFcJTJIlJb/ErTxNeYxBCgyW0SoJIr5zzdbgCbpibv0cHHf7XeWlE0CEj7Huibm8QEjq0qLqs0WEiyJ0PInTMJ4TVxjJc56oF22/CLSbb47pdTmiCgKgUBl1WqMPGsajdksB0ZXlRbFRXe6uwSe32MkLxCMpbG1gd9zMUbWCyKurmeOQRtfEzsUAEcCH5stJBi67PYrpQqUUqOAj4CTlVIDlFJ5wEnAf6MlsAd0l18Ta5xqtoBgCeae/wCl1LvtD5RS7wEHRU5ScATKbp1itg6NZgdONFtAsARj/jUicpOIOAPbjcCaSAsLguMx1lVrNLFEgbOkbJzZIoIhGPOfA+QDM4A3A7+fE0lRQZKwZZQ0cU9ctP49VuwJjOpPF5EMpdSWKGgKliPMFqDRdMGJwH1mi+iJHlt+ETlIRBYCFYHHE0TkkYgr6wZnSdkQYDczNWg03XBYYEwqpgmm238fRp2yGgCl1E/AYZEUFQS/Nvn8Gk13pABHmy2iJ4KK8FNKrdrhKV8EtITCkSafX6PpiWPNFtATwVTpXSUiBwFKROzAdAK3ACai7/c1sc6+ZgvoiR4X9ojIAOABjG6MYAT4TFdK1URe3s44S8qGY0QYajSxTDOQVVVaZHYvuUuCGe3fRGxF0h1otgCNJgjSgF0xv5fcJV2aX0Qewojt7xSllFmpi8abdF6NJlT2IYbN392A33cYi3tSgV8BiwPb3hijmWahza+JF/Y2W0B3dNnyK6WeAxCRS4BDlFLewOPHgC+iI69T9jTx3BpNKOxjtoDuCGa0vx+QDbSv388MPBd9XDkpVl64xId1d4wgn/ZtsCl6NJruiemWP5jR/vMBF/Apxmj/YYCrvWcQVVw5VwB/B37BqMJbCVT+5B+1eprncssqNXAU218URqPTeWvMZUis5vQPKoefiAwGJgUefqOUMuePceU8BEzr4lU/xhTg1ovCFuVY/Ffv71te8R2Zz/YXhd0wkpJoNJFmv6rSou/NFtEZwbT8gjHVN0opdZuIjAAGK6W+jYbA7XDlvIexlDdUNgOL6HBheNt3wMY/e6akNZCxK9tfFEagS35pwsdJVaVFZWaL6Ixg7vkfwWhVjwRuAxqA/wATI6irK8b08rj+GPEBW2METrbO4WTrnDZgKcYFYR7w72qVt3x621T/d2q34Wx/UdgVY+5WowmFmB2PCsb8k5RSvxKRHwCUUrUiYtZU34gwv18KUBjYABgqNbzhuA2MKiztPYWnfUoqH/H9pvF+7+nZPqw73kIMCrMuTeIQ1+b3iIiVQMCPiORj9ASiiysnlejGFwwJbEcAWEVxmW0ml9lmbmHbLcTHwMPf+8dWT2u73LqWvNFsuyAUAqMI7n+sSVzi2vwPYmTxGSQifwfOAG6KqKrOyTbhnJ2RgRH09Kv2J/a1LObr1Mv8QBXbegtl9Spt8S2e89tm+g8ZxPY9hXFATrSFa0whZs0f7Gj/bhhpswT4WCkV/ZBFV85oYEnUzxseathhwPEN32Gbbvacl95M6o4DjsPRA46JxP+qSosONVtEZwTbJR0ANCmlnhGRfBEpUEotj6SwToiVlr835GFkPN6a9fgM6+ecYf28FeOCVgnMBV5Y6R+4fKrnclWuRo1k5wHH1Kgr1/SVmK0r0aP5ReRWYD+MruozGEEzLwIHR1baTmRF+XzRwAHsEdgAGGHZwNuOm8CoRNTeU/jCo6yLHvSe1viQ79Rcto0ptF8Y8qMt3Cyal33P5o8fB7+fzAnHknPAmdu9Xv/tDBrn/xcsVqzp2eSdcAW2nIF4alaz6e27UX4fecdNxTG0EOX3seG1W8g//WYs9ohdVx3B7igiqcDngWNswBtKqVt32McBPI+RL6AG+K1Sqqo3woJp+U/FiFGeB6CUWiMiZhgxnlv+3jA0sB0FYBcfV9tf52r76w1si3D8AHjgK9/ua6Z7ptk3kjuG7XsLozBqyCUEyu9j07v3I7YUQKj/bhZpYyaRMmDbJJCndg1K+RGseBtq2Pzhoww841bcc17H39YMYqH2s+cY/H+lNMx7B29jxKvOhRJh2grcDtxJoPafiLynlOpYiPZdYAKwGmP26xd6ORAejPnblFJKRNpH+81KTJiILX9vyMK46m/NFHOQdSFzrZf6MGrFtfcW3qpVmUuu91zU9l//xPaEpx0HHOPuYtpaXYlq3cLg392NLSuP1Y+eT+NP79P/qIu37pOx26H0O3IKFnsqtZ89R+NPHwDg2bSCzH1OIGXQWGreuRt/SyMNP7xH9qTTI9nqQ2izPRbgHxhl6GowpptHsn0Vai9GBa2vRWQ6cKeIiOpFue1ghL0mIv8CckXkIuAC4IlQTxQG4u7LGmWsGEFQYzBKqtFPGnk85T6ATWy7KLwKVL7i/fXmW7znp7dhH4dxQcgzRXUIbFk4ew+xpYy15w6eCWDvN+yQ5mXfp3PUtvJxqSP32rp/a3XFwRi3RDOtmXkTG757Ox8RZUnPbd707gON+H0DMvc88v0Iy24IYd/9McaA3sT4HOdi9N46MhRoz6n5W4zo1TyMzzgkgsnkc4+IHAPUY7QYtyilPgz1RGFAz5f3ngHAIYENgLNtsznbNrsF48t23yMLx7knrBhUVNdv7Jb63AK2ZAxO89nSBwkMEPw+QfkEv1dQfosonyi/X/AHfldKRPlF+f0WQVnw+0Fhwa8E47GgEFFYQAkKAREUFkBEISgxnoPA6xYxostFULKydl36tMrPx0prc2rrI3+YfOyuk1asSElRi92tjteaNuZYsKAQufmDR3afV71ooMfntdh8XusphYeuOGXlz8Ov3bB88IYtten5Gf2ap+198ooHvnxxV7vV5h/5+l+OUmC59tDzq3YfNKZZEAuIRRAJxLa3PzakIhaErY9BrBhaLRjPWTFacEsgPsayuuSLsmGlh74dxOc0FFillDpORHKBr+gif4WIjMQoDNrUy+9EcIYKmN0Mw3cklgqGJAqpwJ5bRHZ5tKi5tPSZJc+MqlpyXYfX3V5r6lJ3tnNdXe7YLe7sApoyhmQ227MGI5YxtN+KtU9M9jRB2VXHNIgOq9s6gL1GHcX8qi+5+vRnrHe++cfC/pmDfFZHLt+29JuglN/z4/IvU5bWu3N/c+B561/6/F/DPT6PZeKEyXX3z3lpbNH+p1XlZ+c1v/b1q6Me/2HGiFblVSk2R9uKhnV2q8Xiu/KDOwumHXPWj+AD5RXwofAJyi8QuPbht4DfopTfAn6r8VjZUIGfKCsou/EzcJ0zLhD+qwlttk8pVSciFewc1VqNMR18GEaY/dkE0uqHSndpvJbTzcellBrdmxP2gVC6T5oQqHCkNAP5JefbLrrtBe8du62mBMPKOTZfy6/yaivJq63seIgCqptT835054zeXJszprUhe6StOXVAP5/VMRwRJ2HuqeVk5LHv6COYs+h9trTWpw3KHcny9Qss+489BrFkDRNg0ZpKCkccxGtfPVeQ7shBHNCqBu6XlT4CW0rBYLEPQkkmDS3r6Zc5FK/fm7H/2GMYmT+Opz66jZTMokjl2g/2fnwLRmuOiKRhBJJ9vsM+s4BijFW2M4BPenO/D91/QPvt8NgCnAVcA/zQm5P1EW3+CLEgJcUb+LXfLb+3Tb3xZd8dE6pUCV2neRNgWFpLzbC0lhoGr99ugWerX6yLGjKHranLHVvvzhnta8wYmtbqyMlXFtso+jDvXTB4D1JTMrh/1pXUN9WQ7sjm4MIi3pn7DCPyx1G3ZRNL15bT0FzHwJxh1DVu5OmP/krxkTfw/Kd34vG20uppIsWWykn7X8Ccyvf5bMEMLGIhLyuigXgtQe63Djgk0OL7MRaS3SUitwHfKaVmAU8BMzEyWnkwWv5e0V0arxoAEbEAvweuBX4EipRSC3t7wj7QaMI5k4KfHSkdW47sv59jvfyaN3x/33+x+jOhTxU6LMq3R07Dij1yGlbAqo86vlbTZs/41p09akNd7pim+uwCS1P6oGyPLWMIImPoYdWk1WLlt4dczrMf305Gag6H73kqQ/o7jXWZAey2VDJTs7FZt82w9c8axBWT70UpxX1vTSczNZfBuSNoamuksdlNVloukyddGOKfGRLNQe43CNiIkYSmAbhXKbXAWFUPInIYcD9GhqC3lFKnth8oIj6gPPBwpVJqck8n667bb8cY2b8S+B9wilLKzPBa3fJHiF9SUnb8HmTec4b1mstm+W4/dIEqIXzZkPJSPFvy8mvKya8p7/i8X8GKpvRBK+pyRtfW5Yz1NGQNt7ek9s/zW1JGIjIcsPh8Xv5XUcbJk6Zw1F7bgntOmng+AAtWzmHi2KPZb4xR0Om2V4q54Oibt+4nIuRm5HPS/ucz++cZHLXXmZx18GXM+vYpRg+OaGrIup52CAwOPoxxL78aY6R/BoBS6pbAPk7gPIze96wd3qJZKRVS2rDuuv3LMeYU78fIkLOXiGydR1FKvRnKicKANn+EqLZZO5voTntosvW6VrvvjqN/VCVEdkWlRaAgo2l9QUbTeoau/arja1t8Fnt5XeaIddOX/bxbblr/1hPHHb24VfkGIdbRdMgnOX7kQXy+YCb7jj6Cqg0VpKVkkJOxbQZz8ZqfyMnIY2DOMDzeVsQY0KfNG2yvvNcEMyC3P7BEKbUMQEReAX4DbO1lt0fyiUhYVtV2Z/6PMAYqJgS2jiiMuchoos0fGepbLZau5vgdj59gLWmx+0pPmquuw5y1BRlWv2dC1bryCfNqVrJryjruefncXQGm5Q2o/cVnWVbvyG08Za9TKzJzR9q+s6VOuuWlcwalpmTYfnfEdVvnH5RSvD/vxa09gYMLi3j2k9vx+3389tArIqlfsS35bXd0nL8Ho/Wf1MW+nZEqIt9hNNilSqmZPR0Q1Kq+mMCV4yD4gRNN8CweXzDiW7qvyuQ963Pf7Wd8qa4B0qOkqy94FZZljRlDVtXljnHX5YzxNmYOc7Q6+g3wW+0FwC5R1LJp6mNH9rj2QkTOAI5XSl0YePx7jEQ6O+WsFJFngXeUUm90eG6oUqpaREYBnwBHKaWW7nhsR4JZ2DMII954F6XUCSKyO3CgUuqpno4NKy53K66cOnTizXCzgZ5H4G2vHWa9sSXFf8fvPvVPJ/ZDrW2Cf9esLdW7Zm2pZnj1Zx1fc3utqd+7s53rjdiFUTRlDM5ss2cORixjMVLTh5O1Qe7XPn/fzrDAc0GhlKoO/FwmIrMx1uP0zfzAsxir+W4MPP4FI0Q0uuY3WERoXSFNz6wnuNyI1lkHWP7caqd0yn/9U4nfZCQ5Nl/Lvl3ELqxuTs37oS5n9OY6I3bB3pw6IMdndYxApIDeLZIK1sBzgbFinKcaYwrv/4I5UET6YSy5bw0U1j0YuKun44Ix/wCl1GsicgOAUsobmFYwA23+8LOe4JdnWz7Y13JDi507p5b5L8ZIjJooCDA8raVmeFpLDUN2jl2obMgcXl2XO6bBnTPa15g5NK01JSdfWWyj6X5JdbetbzsBX03DWKlpBZ4OTPNtneMXkYkYMwD9gJNF5C9KqT0wlnf/KzAQaMG45+9xOj4Y828RkTy25fA7AHAH8wdFgEUmnTdh8RrzygNCOEQ+28tS0mbnnitn+otJjlwCgdiFqj1yGqo6i134xp09amNd7tim+mxne+zCLoiElH1KKfUuxpLdjs/d0uH3uRi3Azse1+UagO4IxvxXYcwpjhaRLzE+7DNCPVGYqOx5F00oLLPbG+lFd/brQss1rXbuK3ndfw4xnKcuCnQbu9DqyP0SvjZLW7d0V6UXAKXUPOBwjBRUfwT2UErNj7SwLtAtf5gpd6S09fbYeWMsV/7lHMsbhDAwlURYBApSW+vWmC2kK3o0fyDy6ESMjDLHApeJyFWRFtYFSzAjbXgCs2D70N7Qj3dapt30e+vbwIowSUok3IWVFTF7YezR/MDbGCGFeRhTPO1b9HG5WzHSY2vCRGVKSp/TfP0yTP503fnWDwlycCuJWGC2gO4I5p5/mFJqr553ixqL2Dm7iaaXVNntYQnbrRosF155kfXZe5/wecVI+qKJ1Zv9AMG0/O+JyLERVxI8c80WkEC0NFgtYZuvrx4g513+J+t3KsZbvCjypdkCuiMY888BZohIs4jUi0iDiNRHWlg37JjcQNN7NhDmOoPr+8m5Uy+1LlDG8u9e80LtZiYvX8bJy5fx/OadQ+PdPh+XVa/mlOXL+e2KKha3tgKw2evldytXMHn5Mj5q2LYcZGr1ajZ4PX2R1Bvi3vz3YlS3TVdKZSulspRSZibT/BojiYGm76wnAkVGN+XIWX+8zLpc9bKXtri1ldfr6nh1pJMZzgJmb2lkRdv2kxKP19SwmyOVmQUF3DF4CLdvWA9AWUM9Z+Xk8upIJy/UGheNTxsbKHQ4GGgL18rkoFhSWFmxIZonDJVgzL8K+Lm3qYLCjsvdBHxvtowEIZi4/l5RlymnXjjdut7fi/vepW2t7JWWRprFgk2EiWnp27Xi7ftMSjfWGI1yOFjj8bDJ68WO0KIUbUphEcGrFM/X1jKlf9STE8d0qw/BmX8ZMFtEbhCRq9q3SAvrgU9NPn+iEJGWv52GdDlpypXWer/wRSjHjU1x8H1TE3U+H81+P59vaWTtDl32cY5UPmo0Lgjzm5tZ4/Gw3uulKDubTxobuHDVKi7un8fLdbVMzs4mzRLMVz2sJIT5l2OUok7B7Km+bXxg8vkThfVEuJbcllQ57vwrrW0+4ZNgjxntcHBh/zwuXLWSi1evYjdHKlbZPjXwRf37U+/zc2rVcl6qq6UwNRULkGW18tiw4bzudLJ7aiqzGxs5NiubW9at5Yrqan5sDjajVp/5OFon6i3xs56/I64cO0Z2FLMvQnHNWqu15NgRQ0ujcS6HR33xzL2+Jpuf40I99r6NGxlss3FOv36dvq6U4phlS5npLCDTui1s4c4N6zkiM5MVbR7sIhyblcX06mqeGD680/cJI+WFlRWxND3eKV22/CLyz8DPt0Vk1o5b9CR2gsvtQXf9+0xfQntDpdUuhxZfbc32WHgnmP1rvEZC4TUeDx81NlCUvf0Yc73PR1ug4XrD7Wa/9PTtjF/V1sY6r5f90zNoUX4CFTZoUVEJEJ0RjZP0le6CfP4ATAPuiZKWUCkDesxQqumacocjqkuzPTY58A/XWOc+9w/fjBQfp3a37/Q11dT5fNhFuGngILKtVl6pqwXg7Nx+LGtr44a1axCEMY4U/jp4yHbHP7BpI9MHGAsOT8zK5rLqap7YXMNlA0JZwNhr4sL8XXb7ReQHpdQ+UdYTPK6c/sAaQiiBrNmeiwbnXzEnLe3+aJ/X4lc/Pnuvb3GqhzN73jvuqCqsrCgwW0QwdNfy53c3qq+UujcCeoLH5d6MK+dtorC8eJXbzx9mNrO+USECF//KzvQDjGvOQ9+08fDcNqwWKBpr465jds5xecFbzbzzi5eBGcLPl27LEnX9hy28t8TL3oOtPH+qkbL+xfltbGpSXHFA5K9py8IU2hsqfovsXXyV1fbMfb5/p7cFl60mjugxcWas0N1ovxUjn1lWF1ss8Fw0TmKzwD+OTWXh1EzmTMng4bkeFm708elyL28t8vDTnzJYcGkm1xzUuZfO29vO+7/bPu+lu0Uxb52P+ZdkkmKF8vU+mj2KZ370MHViVDzp22i1hjtfXdAoi+x53lXWfRtTo/MZRpH/mC0gWLpr+dcqpW6LmpLe8T4RnqsGGJJlYUjgcpflEArzLVTXK56Y10bJIQ4cNmMaamBG59fSw0baqKrbfqDJIuDxGSPVTR6F3Qr3fNXGZfunYLf2VPEyLM8Be2oAAA4jSURBVGxSIuZm4REZd8GVNtsTD3ifymliiqlawsOiwsqK/5ktIli6a/mj8g3sEy63F3gpmqesqvPzw1ofk4ZZ+aXGzxcrvEx6spHDn93C3Orgx8+yHMKJY23s868tDMm0kOMQvqn2ccpuUQtBjfhFM0hGXzTddnRNJo+ZLSQMPG62gFDozvxHRU1F34hat7GxTXH6a03cf3wq2Q7B64fNzYo5UzK4+5hUznqjiVDiJq472MGPf8rkH8elcvOnrdx2hIMn57Vx1utN/O3z1gj+JUAUAnxCYOQll9lO2pDDP80W0gdaieJ3MRx0aX6lVDBVRszH5Z5PH1eQBYPHZxj/3PF2Tis0Wudh2cJphXZEhP2HWrEIbGoKPWjqh7U+lIJxeRZeX+jhtTPTWVrrZ3FNRGfiwr6ir48Mm3ap7Yzq/kR99iFMvFFYWRFMWa6YIeoBzxHi2Ui+uVKKKbNaKBxg5aoDt43Cn7KbnU+rjGCUX2p8tPlgQHrod0s3f9rKX4904PGDLzA0YAGaIrt2MVa6/R0ZfOUfbedWDeRus4X0gn+ZLSBUEsX8zwC1kXrzL1f5eGG+h0+We9n7sUb2fqyRdxd7uGAfO8tqFXs+0sjZbzTz3ClpiAhrGvyc+FLT1uPP+U8TBz61hUU1fobd28BT87YF1s2s9LDfLhZ2ybKQmyrsPdjK+EcbafEpJgzuc4atLmkQ2QSYuTS7K/Kvm2Kb8ssulBJIFx8HVBRWVoS0eCkWiM/Y/s5w5dwC/MVsGfHCnFTH1RcNGfQPs3V0g/uWl3yP7LlSXU/sN1JTCisrnjZbRKjE+j81FB4giDroGoNyh8NrtoYeyLntXOu070fL7YBZFaKCYRXwgtkiekPimN/ldgMPmi0jXljgMCW4L1Sy7jzLetXXu8ntGKWnY5G7Cysr4jKzVOKY3+B+wMz8gnHDkhR7VHNa9YH0+061XvvpXnI7ELVViEFSDTwRzI4icryILBKRJSJS0snr54nIRhH5MbBdGHa1O5BY5ne5a4GHzJYRD6yx2dLM1hACqY8WWa9/b1+5E2M+PVa4vbCyoqWnnQKFbx4GTgB2B84JlLrfkVeVUnsHtifDrHUnEsv8BvcCDT3uldzUeoziq/GE45ljrSUzDpC7gKil4+mGlUCwBt0fWKKUWqaUagNeAX4TMWVBknjmd7k3Q1xHikWDWAvwCRb7y0dY//zyYZZ7gEaTtVxfWFkR7G3IUIyBwXZWB57bkdNFZL6IvCEiEU83lHjmN7gD4x+s6ZxYDPAJFuuMgy03Pnu05UHMG9+ZXVhZ8UqY3/NtwBmojvUhUQgVTkzzu9wNwGVmy4hhYimuvzdY3p1oueGxEywPE8Hgri7wYmS4CoVqoGNLPowdKhsrpWqUUu3jGU8C+/ZaYZAkpvkBXO6ZxFFihSjTY7d/9VOrqbisgsU3Lt7ptU3vbeLn837G29D57FvVPVUsvGQhK+7bvnDvqsdWsfimxax7Y902IbM2UP99rxpw+WRvyw0PTrY8AWzqzRv0kocKKytCLUc2FxgrIgUikgKcDWyXB1NEOuYhmwxU9E1mzySu+Q0uQw/+7USbYf5uB/z6HdIP59XOnY+taaNxQSP2vK5nCgecOIBhFw/b7rmWVS1YUiyM/dtYmpc342vy4anz0Ly0mex9ex9l/L89LNfdfbrlOYzeTKRZB7hCPUgp1d5b+ADD1K8ppRaIyG0i0p6H8nIRWSAiPwGXY1TGjiiJbX6XezVwk9kyYo0lKfYt9PDZZ4zLwJqx89qCdS+vY9BZ3Q8XZO6eiSV1h7e3gr/Nj/IrlFeBBTa8uYGBp/b97mPurpar//Zby6sYOR0jyTWFlRW96qYopd5VSu2qlBqtlPp74LlblFKzAr/foJTaQyk1QSl1hFKqMpzCOyOxzW/wT3Rl3+3obWhv/bx67P3spI0IPUQgdZdUbFk2lt66lOy9s2lb34ZSijRneMIN5o+yXH7z76wzMKbgIsGbhZUVUU0cE2kS3/wutx+4mNgND4065Y6UkFdz+Vv9bHxnY59a6iHnDmHMX8cw4IQBbHhzA4NOG8SGWRtY+fBKNs/ue/qIRcNlasl51vcxqkyFkzXARWF+T9NJfPMDuNw/AneaLSNWWJSSEvLn3rahjbaNbSy5eQmLrl6Ep9bD0luX4qkLPay9fl49qc5U/K1+2ja2MWLqCOq/q8ff2veCGsuGyMXXTLHOVrDzSGXvUEBxYWVFfCS3CYHkML/BrcDnZouIBVbZbTvnF++B1OGpFD5UyLh/jGPcP8Zh72dn9F9GY88NbYmA8ipq/ltD/on5+Nu2mX3rWEAYWDlQzr/ij9Y5ChaG4e3uL6ys+CgM7xNzJI/5XW4fcA7GSHcy07TFYum86F0HVj26imV/W0brulYqr6xk82ddN3zNy5upfnrbtPWy25ex6pFVNC5spPLKShrKt0241HxcQ+7BuVgcFlKHp6LaFItvWkyaM63TAcbesra//H7aJdb5Cub34W3mAzeES1OskTjJPILFlXM0xpRL8lz4tmf5+IIRnxGFqaRYoF+D+s9j//Q5JfSgmXrggMLKiojPt5tF8hnA5f6I5J7+i9e4/l5RmyWnX3S5dbWCb0I4zAecncjGhzgwfxDroA8TkXki4hWR4Ep3udx3AK+FW2ucEM9x/b2iPkN+M+UK62a/EGxBjWsLKyvei6ioGCCmzR/kOuiVGF3Yf4f49ucDP/VVYxwS73H9vaIxTU44/wpri0+Y3cOuTxVWVtwXDU1mE9PmJ4h10EqpKqXUfCC0eSKXuynwXtU97ZpgbCAJzQ/QnCpHn3eVFZ+FD7vY5Qvg0mhqMpNYN3+w66B7h8u9AqMyUdLMAKyw2eqBuEjgFwlaU+TXxVdZ070W3t3hpV+A00JYox/3xLr5I4/LvQg4Gki4II7OWOBIiaU0WKbQZpeD/3C1dUCbdevKupXA0YWVFdFcHWg6sW7+HtdBhwWXuxw4FnCH/b1jjN6E9iYiXpvs/4drrMOaU3gcw/irejwowYh18/e4DjpsuNzfYwwsmp0eKqJU9CK0N1HxW2Rw8dW2uwsrK8IVChxXxPQXIZh10CIyUURWA2cC/xKRUBMtbMPl/hojkUIsJIiMCMvjJ2V3pFkNHF5eXL7EbCFmkXwRfsHgyjkOeAtw9LRrnOEZ7xxeisjNZgsxmVXAEeXF5UvNFmImMd3ym4bL/QFwBIk3C7ARkaQK8OmExcCvk934oM3fNcYtwCSg97cRsUdSBvh04ENgUnlx+TKzhcQC2vzd4XJXAQdhjDkkAkkV178DDwInlBeXRzvbb8yizd8TLnc9UIQRZhzvJF1cP+ABLiovLp9eXlwey9V+o442fzC43D5c7mkY2YDj+QuUbN3+jcBR5cXlEa97F49o84eCy/1P4CSimyc+bGy2WGqBTLN1RIn5wMTy4vIvzBYSq2jzh4rL/T6wJ5EKNoogCx0pPVaUTRBeBQ4qLy5f0eOeSYzNbAFxicu9HvgNrpzzgAeA3lediCLze5myO45YD0wtLy7/j9lC4gHd8vcFl/tZYDzwqclKgmKhI6FDe58HdtfGD55E/jJEB5d7Jcay4OnEeFjwErs9EXt6q4ATy4vLi8uLy5NiZWa40OYPBy63wuV+ENgHIyFELKLW2azpZosIIwp4DNijvLg84VNuRYJEbAnMw8gNcBiunNOBu4BRJivqyGafSL7ZIsLEEuDC8uLyz8wWEs/olj8SuNz/wcg5eB1QZ7KadhJhjn8l8EeMe3tt/D6iV/VFGldOP+BajLLLGSYq+XR8wQgBfm2iht6yCrgdeLq8uDxp0mxFGm3+aOHKGQT8GaNoaMjlssLAq+MLRuwFFJpw7t5SjWH6J7Xpw482f7Rx5fQHLgAuIbpjAg+OLxhxLpAXxXP2ljXAHcAT5cXlSZ9zMFJo85uFK8cCHA9MDfyM6PhLq3Dzfs4RtwESyfP0kW+AJ4EXy4vLkyUa0TT0aL9ZuNx+4F3gXVw5o4A/AVOA/pE4XUVKShOxafxa4AWMrn252WKSCW3+WMDlXgZchyvnFoxCIpMxkon2WE03WH6OrdDeFuAdjCpL7+quvTlo88cSLncLxqKUV3Hl2ICDMS4EJwNj+/LW5Q7T63TUAp8DM4AZ5cXl9SbrSXr0PX+84MoZh3EROAmjjFlaKIefOnTwVUtSUu6NhLQuaDf7bOAz4Kfy4vLQSqppIoo2fzziyrECu2GEE/8q8HMfIKerQyaOHHZDi8VyRwRVbcYIbZ4d2OZrs8c22vyJgitHgAKMi8AEjEpHQwNb9viCEa8A1/ThDApj3n0psGzHn+XF5WFLcCIix2MslbYCTyqlSnd4/U8YsyQ+jCIrFyulFobr/MmCNn+SMP658fnACIzZhP4Yg4kZGDnu2gJbx987buuB5dEYmAuUZf8FOAajsMZc4JyO5haRbKVUfeD3ycClSqnjI60t0dADfklCeXH5RoycdrHO1rLsACLSXpZ9q/nbjR8gA6NXogkRbX5NrNFZWfZJO+4kIlOBqzDKjR8ZHWmJhV7Vp4lLlFIPK6VGA9cDN5mtJx7R5tfEGqGWZX8FOCWiihIUbX5NrNFjWXYR6RjwVIRRf08TIvqeXxNTKKW8ItJelt0KPN1elh34Tik1C5gmIkdjzE7UAsXmKY5f9FSfRpOk6G6/RpOkaPNrNEmKNr9Gk6Ro82s0SYo2v0aTpGjzazRJija/RpOkaPNrNEmKNr9Gk6Ro82s0SYo2v0aTpGjzazRJija/RpOkaPNrNEmKNr9Gk6Ro82s0SYo2v0aTpGjzazRJija/RpOkaPNrNEmKNr9Gk6T8P/VUSk5JMFsCAAAAAElFTkSuQmCC\n" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"# Saving Data" | |
], | |
"metadata": { | |
"id": "gCYG_L63FvvO" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"json_data = df.to_json(orient=\"records\")\n", | |
"with open(\"json_data.json\", \"w\") as jd:\n", | |
" jd.write(json_data)" | |
], | |
"metadata": { | |
"id": "1bX44hGABNyL" | |
}, | |
"execution_count": 20, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.head()" | |
], | |
"metadata": { | |
"id": "00ed-g2oHMrT", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 354 | |
}, | |
"outputId": "f73f8c2f-7c46-45e7-af7a-f3596c227334" | |
}, | |
"execution_count": 21, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Lign ActivityCode Asset Plan \\\n", | |
"0 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-M Q1-BIS-BF1-M \n", | |
"1 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-R Q1-BIS-BF1-R \n", | |
"2 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-TAM01 Q1-BIS-BF1-TAM01 \n", | |
"3 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-V Q1-BIS-BF1-V \n", | |
"4 BF1 AJIAM.TCM-BF1 JL-MP-HE-Q1-BIS-BF1-ACC Q1-BIS-BF1-ACC \n", | |
"\n", | |
" Lign Status Description Frq \\\n", | |
"0 M Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-... 30 \n", | |
"1 M Q1-BIS-BF1-R : Mesure de vibration - RMS et te... 30 \n", | |
"2 M Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e... 30 \n", | |
"3 M Q1-BIS-BF1-V : Prendre une image thermographique 30 \n", | |
"4 M Q1-BIS-BF1-ACC : Prendre une image thermograph... 1 \n", | |
"\n", | |
" EmployesNbr TimeNeeded \n", | |
"0 2 0.2 \n", | |
"1 2 0.2 \n", | |
"2 2 0.2 \n", | |
"3 2 0.1 \n", | |
"4 2 0.2 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-95e21635-449d-450e-ba9c-43c09ac6d72b\">\n", | |
" <div class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Lign</th>\n", | |
" <th>ActivityCode</th>\n", | |
" <th>Asset</th>\n", | |
" <th>Plan</th>\n", | |
" <th>Lign Status</th>\n", | |
" <th>Description</th>\n", | |
" <th>Frq</th>\n", | |
" <th>EmployesNbr</th>\n", | |
" <th>TimeNeeded</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-M</td>\n", | |
" <td>Q1-BIS-BF1-M</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-R</td>\n", | |
" <td>Q1-BIS-BF1-R</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-R : Mesure de vibration - RMS et te...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-TAM01</td>\n", | |
" <td>Q1-BIS-BF1-TAM01</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-V</td>\n", | |
" <td>Q1-BIS-BF1-V</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-V : Prendre une image thermographique</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.TCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-ACC</td>\n", | |
" <td>Q1-BIS-BF1-ACC</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-ACC : Prendre une image thermograph...</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-95e21635-449d-450e-ba9c-43c09ac6d72b')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
" \n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n", | |
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" \n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" flex-wrap:wrap;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-95e21635-449d-450e-ba9c-43c09ac6d72b button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-95e21635-449d-450e-ba9c-43c09ac6d72b');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
" </div>\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 21 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.shape" | |
], | |
"metadata": { | |
"id": "E1r7AtppIfk8", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "8f2d8945-4752-45f6-c0ab-a5d259c5aa96" | |
}, | |
"execution_count": 22, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"(587, 9)" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 22 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Let's find if there's duplicates in our dataframe" | |
], | |
"metadata": { | |
"id": "TjwapuNFeeJB" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df[\"CustomId\"] = df.Lign + df.ActivityCode + df.Asset + df.Plan" | |
], | |
"metadata": { | |
"id": "smeCHZgteaF_" | |
}, | |
"execution_count": 23, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.head()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 528 | |
}, | |
"id": "Bb00R-JbexAs", | |
"outputId": "ef3a709d-607b-4411-dd8e-b21921195b1b" | |
}, | |
"execution_count": 24, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Lign ActivityCode Asset Plan \\\n", | |
"0 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-M Q1-BIS-BF1-M \n", | |
"1 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-R Q1-BIS-BF1-R \n", | |
"2 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-TAM01 Q1-BIS-BF1-TAM01 \n", | |
"3 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-V Q1-BIS-BF1-V \n", | |
"4 BF1 AJIAM.TCM-BF1 JL-MP-HE-Q1-BIS-BF1-ACC Q1-BIS-BF1-ACC \n", | |
"\n", | |
" Lign Status Description Frq \\\n", | |
"0 M Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-... 30 \n", | |
"1 M Q1-BIS-BF1-R : Mesure de vibration - RMS et te... 30 \n", | |
"2 M Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e... 30 \n", | |
"3 M Q1-BIS-BF1-V : Prendre une image thermographique 30 \n", | |
"4 M Q1-BIS-BF1-ACC : Prendre une image thermograph... 1 \n", | |
"\n", | |
" EmployesNbr TimeNeeded CustomId \n", | |
"0 2 0.2 BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-MQ1-BIS-BF1-M \n", | |
"1 2 0.2 BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-RQ1-BIS-BF1-R \n", | |
"2 2 0.2 BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-TAM01Q1-BI... \n", | |
"3 2 0.1 BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-VQ1-BIS-BF1-V \n", | |
"4 2 0.2 BF1AJIAM.TCM-BF1JL-MP-HE-Q1-BIS-BF1-ACCQ1-BIS-... " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-3bb6ba01-f684-48a5-bc5a-e8c321a62c0b\">\n", | |
" <div class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Lign</th>\n", | |
" <th>ActivityCode</th>\n", | |
" <th>Asset</th>\n", | |
" <th>Plan</th>\n", | |
" <th>Lign Status</th>\n", | |
" <th>Description</th>\n", | |
" <th>Frq</th>\n", | |
" <th>EmployesNbr</th>\n", | |
" <th>TimeNeeded</th>\n", | |
" <th>CustomId</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-M</td>\n", | |
" <td>Q1-BIS-BF1-M</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-MQ1-BIS-BF1-M</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-R</td>\n", | |
" <td>Q1-BIS-BF1-R</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-R : Mesure de vibration - RMS et te...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-RQ1-BIS-BF1-R</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-TAM01</td>\n", | |
" <td>Q1-BIS-BF1-TAM01</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-TAM01Q1-BI...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-V</td>\n", | |
" <td>Q1-BIS-BF1-V</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-V : Prendre une image thermographique</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.1</td>\n", | |
" <td>BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-VQ1-BIS-BF1-V</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.TCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-ACC</td>\n", | |
" <td>Q1-BIS-BF1-ACC</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-ACC : Prendre une image thermograph...</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>BF1AJIAM.TCM-BF1JL-MP-HE-Q1-BIS-BF1-ACCQ1-BIS-...</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3bb6ba01-f684-48a5-bc5a-e8c321a62c0b')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
" \n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n", | |
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" \n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" flex-wrap:wrap;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-3bb6ba01-f684-48a5-bc5a-e8c321a62c0b button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-3bb6ba01-f684-48a5-bc5a-e8c321a62c0b');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
" </div>\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 24 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df.CustomId.duplicated().any()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "tfb9UbjSeyIb", | |
"outputId": "c48df4f5-a761-4ec5-d7f3-72e1ab916008" | |
}, | |
"execution_count": 25, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 25 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"**SO** we have duplicates rows in our dataset" | |
], | |
"metadata": { | |
"id": "2tu5JDXQgt81" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df2 = df.drop_duplicates(subset=\"CustomId\", keep=\"first\")" | |
], | |
"metadata": { | |
"id": "aq48CpMLfU_u" | |
}, | |
"execution_count": 35, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df2.head()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 528 | |
}, | |
"id": "hTZ72V4tf7B_", | |
"outputId": "bf4ddf5b-ecf2-47e1-dd3c-22ec81352983" | |
}, | |
"execution_count": 36, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Lign ActivityCode Asset Plan \\\n", | |
"0 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-M Q1-BIS-BF1-M \n", | |
"1 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-R Q1-BIS-BF1-R \n", | |
"2 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-TAM01 Q1-BIS-BF1-TAM01 \n", | |
"3 BF1 AJIAM.MCM-BF1 JL-MP-HE-Q1-BIS-BF1-V Q1-BIS-BF1-V \n", | |
"4 BF1 AJIAM.TCM-BF1 JL-MP-HE-Q1-BIS-BF1-ACC Q1-BIS-BF1-ACC \n", | |
"\n", | |
" Lign Status Description Frq \\\n", | |
"0 M Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-... 30 \n", | |
"1 M Q1-BIS-BF1-R : Mesure de vibration - RMS et te... 30 \n", | |
"2 M Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e... 30 \n", | |
"3 M Q1-BIS-BF1-V : Prendre une image thermographique 30 \n", | |
"4 M Q1-BIS-BF1-ACC : Prendre une image thermograph... 1 \n", | |
"\n", | |
" EmployesNbr TimeNeeded CustomId \n", | |
"0 2 0.2 BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-MQ1-BIS-BF1-M \n", | |
"1 2 0.2 BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-RQ1-BIS-BF1-R \n", | |
"2 2 0.2 BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-TAM01Q1-BI... \n", | |
"3 2 0.1 BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-VQ1-BIS-BF1-V \n", | |
"4 2 0.2 BF1AJIAM.TCM-BF1JL-MP-HE-Q1-BIS-BF1-ACCQ1-BIS-... " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-36b6940e-cb22-4493-a526-e9ec88e973fd\">\n", | |
" <div class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Lign</th>\n", | |
" <th>ActivityCode</th>\n", | |
" <th>Asset</th>\n", | |
" <th>Plan</th>\n", | |
" <th>Lign Status</th>\n", | |
" <th>Description</th>\n", | |
" <th>Frq</th>\n", | |
" <th>EmployesNbr</th>\n", | |
" <th>TimeNeeded</th>\n", | |
" <th>CustomId</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-M</td>\n", | |
" <td>Q1-BIS-BF1-M</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-M : Mesure de vibration - RMS (TSD-...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-MQ1-BIS-BF1-M</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-R</td>\n", | |
" <td>Q1-BIS-BF1-R</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-R : Mesure de vibration - RMS et te...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-RQ1-BIS-BF1-R</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-TAM01</td>\n", | |
" <td>Q1-BIS-BF1-TAM01</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-TAM01 : Mesure de vibration - RMS e...</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-TAM01Q1-BI...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.MCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-V</td>\n", | |
" <td>Q1-BIS-BF1-V</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-V : Prendre une image thermographique</td>\n", | |
" <td>30</td>\n", | |
" <td>2</td>\n", | |
" <td>0.1</td>\n", | |
" <td>BF1AJIAM.MCM-BF1JL-MP-HE-Q1-BIS-BF1-VQ1-BIS-BF1-V</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>BF1</td>\n", | |
" <td>AJIAM.TCM-BF1</td>\n", | |
" <td>JL-MP-HE-Q1-BIS-BF1-ACC</td>\n", | |
" <td>Q1-BIS-BF1-ACC</td>\n", | |
" <td>M</td>\n", | |
" <td>Q1-BIS-BF1-ACC : Prendre une image thermograph...</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>0.2</td>\n", | |
" <td>BF1AJIAM.TCM-BF1JL-MP-HE-Q1-BIS-BF1-ACCQ1-BIS-...</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-36b6940e-cb22-4493-a526-e9ec88e973fd')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
" \n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n", | |
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" \n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" flex-wrap:wrap;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-36b6940e-cb22-4493-a526-e9ec88e973fd button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-36b6940e-cb22-4493-a526-e9ec88e973fd');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
" </div>\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 36 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"df2.shape" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "MYv3iwUSf8M_", | |
"outputId": "fbeeda57-34ed-433f-a4ef-7118830c3e58" | |
}, | |
"execution_count": 37, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"(399, 10)" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 37 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Our cleaned data now contains **399** unique records" | |
], | |
"metadata": { | |
"id": "f0NiHE-hgy0q" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"json_data = df2.to_json(orient=\"records\")\n", | |
"with open(\"json_data2.json\", \"w\") as jd:\n", | |
" jd.write(json_data)" | |
], | |
"metadata": { | |
"id": "VWGKdx05f-I5" | |
}, | |
"execution_count": 38, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "boaLRR50hB3K" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment