1791 lines
103 KiB
Plaintext
1791 lines
103 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# **Analyse 3**\n",
|
|
"\n",
|
|
"## Merkmal 2 - Zeitbezüge innerhalb der Vorgänge\n",
|
|
"\n",
|
|
"### Strategie & Fokus\n",
|
|
"\n",
|
|
"- Untersuchung der Datumszusammenhänge\n",
|
|
"- Anlage von Datumsangaben:\n",
|
|
" 1. ``ErstellungsDatum``\n",
|
|
" 1. ``VorgangsDatum`` (Plan)\n",
|
|
" 1. ``Arbeitsbeginn``\n",
|
|
" 1. ``ErledigungsDatum``"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import pandas as pd\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import seaborn as sns\n",
|
|
"\n",
|
|
"sns.set()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"RangeIndex: 129020 entries, 0 to 129019\n",
|
|
"Data columns (total 20 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 VorgangsID 129020 non-null int64 \n",
|
|
" 1 ObjektID 129020 non-null int64 \n",
|
|
" 2 HObjektText 129003 non-null object \n",
|
|
" 3 ObjektArtID 129020 non-null int64 \n",
|
|
" 4 ObjektArtText 128372 non-null object \n",
|
|
" 5 VorgangsTypID 129020 non-null int64 \n",
|
|
" 6 VorgangsTypName 129020 non-null object \n",
|
|
" 7 VorgangsDatum 129020 non-null datetime64[ns]\n",
|
|
" 8 VorgangsStatusId 129020 non-null int64 \n",
|
|
" 9 VorgangsPrioritaet 129020 non-null int64 \n",
|
|
" 10 VorgangsBeschreibung 124087 non-null object \n",
|
|
" 11 VorgangsOrt 507 non-null object \n",
|
|
" 12 VorgangsArtText 129020 non-null object \n",
|
|
" 13 ErledigungsDatum 129020 non-null datetime64[ns]\n",
|
|
" 14 ErledigungsArtText 128474 non-null object \n",
|
|
" 15 ErledigungsBeschreibung 118135 non-null object \n",
|
|
" 16 MPMelderArbeitsplatz 6359 non-null object \n",
|
|
" 17 MPAbteilungBezeichnung 6359 non-null object \n",
|
|
" 18 Arbeitsbeginn 123538 non-null datetime64[ns]\n",
|
|
" 19 ErstellungsDatum 129020 non-null datetime64[ns]\n",
|
|
"dtypes: datetime64[ns](4), int64(6), object(10)\n",
|
|
"memory usage: 19.7+ MB\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# load dataset\n",
|
|
"FILE_PATH = '01_2_Rohdaten_neu/Export4.csv'\n",
|
|
"date_cols = ['VorgangsDatum', 'ErledigungsDatum', 'Arbeitsbeginn', 'ErstellungsDatum']\n",
|
|
"raw = pd.read_csv(filepath_or_buffer=FILE_PATH, sep=';', encoding='cp1252', parse_dates=date_cols, dayfirst=True)\n",
|
|
"raw.info()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>VorgangsID</th>\n",
|
|
" <th>ObjektID</th>\n",
|
|
" <th>HObjektText</th>\n",
|
|
" <th>ObjektArtID</th>\n",
|
|
" <th>ObjektArtText</th>\n",
|
|
" <th>VorgangsTypID</th>\n",
|
|
" <th>VorgangsTypName</th>\n",
|
|
" <th>VorgangsDatum</th>\n",
|
|
" <th>VorgangsStatusId</th>\n",
|
|
" <th>VorgangsPrioritaet</th>\n",
|
|
" <th>VorgangsBeschreibung</th>\n",
|
|
" <th>VorgangsOrt</th>\n",
|
|
" <th>VorgangsArtText</th>\n",
|
|
" <th>ErledigungsDatum</th>\n",
|
|
" <th>ErledigungsArtText</th>\n",
|
|
" <th>ErledigungsBeschreibung</th>\n",
|
|
" <th>MPMelderArbeitsplatz</th>\n",
|
|
" <th>MPAbteilungBezeichnung</th>\n",
|
|
" <th>Arbeitsbeginn</th>\n",
|
|
" <th>ErstellungsDatum</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>11</td>\n",
|
|
" <td>114</td>\n",
|
|
" <td>427 C , Webmaschine, DL 280 EMS Breite 280</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Luft-Webmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-06</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Kettbaum kaputt</td>\n",
|
|
" <td>2019-03-06</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>NaT</td>\n",
|
|
" <td>2019-03-06</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>17</td>\n",
|
|
" <td>124</td>\n",
|
|
" <td>621 C , Webmaschine, DL 280 EMS Breite 280</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Luft-Webmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-11</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>asgasdg</td>\n",
|
|
" <td>2019-03-11</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Elektrowerkstatt</td>\n",
|
|
" <td>Elektrowerkstatt</td>\n",
|
|
" <td>NaT</td>\n",
|
|
" <td>2019-03-11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>53</td>\n",
|
|
" <td>244</td>\n",
|
|
" <td>285 C, Webmaschine, SG 220 EMS</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>Greifer-Webmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-19</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Kupplung schleift</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Kupplung defekt</td>\n",
|
|
" <td>2019-03-20</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>NaT</td>\n",
|
|
" <td>2019-03-19</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>58</td>\n",
|
|
" <td>257</td>\n",
|
|
" <td>107, Webmaschine, OM 220 EOS</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Luft-Webmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Gegengewicht wieder anbringen</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Gegengewicht an der Webmaschine abgefallen</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Schraube ausgebohrt\\nGegengewicht wieder angeb...</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>81</td>\n",
|
|
" <td>138</td>\n",
|
|
" <td>00138, Schärmaschine 9,</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>Schärmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>da ist etwas gebrochen. (Herr Heininger)</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>zentrale Bremsenverstellung linke Gatterseite ...</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Bolzen gebrochen. Bolzen neu angefertig und di...</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" VorgangsID ObjektID HObjektText \\\n",
|
|
"0 11 114 427 C , Webmaschine, DL 280 EMS Breite 280 \n",
|
|
"1 17 124 621 C , Webmaschine, DL 280 EMS Breite 280 \n",
|
|
"2 53 244 285 C, Webmaschine, SG 220 EMS \n",
|
|
"3 58 257 107, Webmaschine, OM 220 EOS \n",
|
|
"4 81 138 00138, Schärmaschine 9, \n",
|
|
"\n",
|
|
" ObjektArtID ObjektArtText VorgangsTypID VorgangsTypName \\\n",
|
|
"0 3 Luft-Webmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"1 3 Luft-Webmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"2 5 Greifer-Webmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"3 3 Luft-Webmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"4 16 Schärmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"\n",
|
|
" VorgangsDatum VorgangsStatusId VorgangsPrioritaet \\\n",
|
|
"0 2019-03-06 4 0 \n",
|
|
"1 2019-03-11 5 0 \n",
|
|
"2 2019-03-19 5 0 \n",
|
|
"3 2019-03-21 5 0 \n",
|
|
"4 2019-03-25 5 0 \n",
|
|
"\n",
|
|
" VorgangsBeschreibung VorgangsOrt \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 Kupplung schleift NaN \n",
|
|
"3 Gegengewicht wieder anbringen NaN \n",
|
|
"4 da ist etwas gebrochen. (Herr Heininger) NaN \n",
|
|
"\n",
|
|
" VorgangsArtText ErledigungsDatum \\\n",
|
|
"0 Kettbaum kaputt 2019-03-06 \n",
|
|
"1 asgasdg 2019-03-11 \n",
|
|
"2 Kupplung defekt 2019-03-20 \n",
|
|
"3 Gegengewicht an der Webmaschine abgefallen 2019-03-21 \n",
|
|
"4 zentrale Bremsenverstellung linke Gatterseite ... 2019-03-25 \n",
|
|
"\n",
|
|
" ErledigungsArtText ErledigungsBeschreibung \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 Reparatur UTT NaN \n",
|
|
"3 Reparatur UTT Schraube ausgebohrt\\nGegengewicht wieder angeb... \n",
|
|
"4 Reparatur UTT Bolzen gebrochen. Bolzen neu angefertig und di... \n",
|
|
"\n",
|
|
" MPMelderArbeitsplatz MPAbteilungBezeichnung Arbeitsbeginn ErstellungsDatum \n",
|
|
"0 Weberei Weberei NaT 2019-03-06 \n",
|
|
"1 Elektrowerkstatt Elektrowerkstatt NaT 2019-03-11 \n",
|
|
"2 Weberei Weberei NaT 2019-03-19 \n",
|
|
"3 Weberei Weberei 2019-03-21 2019-03-21 \n",
|
|
"4 Vorwerk Vorwerk 2019-03-25 2019-03-25 "
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"raw.head()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Anzahl Features: 20\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(f\"Anzahl Features: {len(raw.columns)}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Duplikate"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"duplicates_filt = raw.duplicated()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Anzahl Duplikate: 84\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(f\"Anzahl Duplikate: {duplicates_filt.sum()}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"filt_data = raw[duplicates_filt]\n",
|
|
"uni_obj_id_dupl = filt_data['ObjektID'].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Anzahl einzigartiger Objekt-IDs unter Duplikaten: 47\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(f\"Anzahl einzigartiger Objekt-IDs unter Duplikaten: {len(uni_obj_id_dupl)}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"RangeIndex: 128936 entries, 0 to 128935\n",
|
|
"Data columns (total 20 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 VorgangsID 128936 non-null int64 \n",
|
|
" 1 ObjektID 128936 non-null int64 \n",
|
|
" 2 HObjektText 128920 non-null object \n",
|
|
" 3 ObjektArtID 128936 non-null int64 \n",
|
|
" 4 ObjektArtText 128289 non-null object \n",
|
|
" 5 VorgangsTypID 128936 non-null int64 \n",
|
|
" 6 VorgangsTypName 128936 non-null object \n",
|
|
" 7 VorgangsDatum 128936 non-null datetime64[ns]\n",
|
|
" 8 VorgangsStatusId 128936 non-null int64 \n",
|
|
" 9 VorgangsPrioritaet 128936 non-null int64 \n",
|
|
" 10 VorgangsBeschreibung 124008 non-null object \n",
|
|
" 11 VorgangsOrt 507 non-null object \n",
|
|
" 12 VorgangsArtText 128936 non-null object \n",
|
|
" 13 ErledigungsDatum 128936 non-null datetime64[ns]\n",
|
|
" 14 ErledigungsArtText 128402 non-null object \n",
|
|
" 15 ErledigungsBeschreibung 118086 non-null object \n",
|
|
" 16 MPMelderArbeitsplatz 6337 non-null object \n",
|
|
" 17 MPAbteilungBezeichnung 6337 non-null object \n",
|
|
" 18 Arbeitsbeginn 123480 non-null datetime64[ns]\n",
|
|
" 19 ErstellungsDatum 128936 non-null datetime64[ns]\n",
|
|
"dtypes: datetime64[ns](4), int64(6), object(10)\n",
|
|
"memory usage: 19.7+ MB\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"wo_duplicates = raw.drop_duplicates(ignore_index=True)\n",
|
|
"wo_duplicates.info()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### NA vals"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"['VorgangsDatum', 'ErledigungsDatum', 'Arbeitsbeginn', 'ErstellungsDatum']"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"date_cols"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Feature VorgangsDatum: number of NA vals 0, relative 0.00%\n",
|
|
"Feature ErledigungsDatum: number of NA vals 0, relative 0.00%\n",
|
|
"Feature Arbeitsbeginn: number of NA vals 5456, relative 4.23%\n",
|
|
"Feature ErstellungsDatum: number of NA vals 0, relative 0.00%\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for col in date_cols:\n",
|
|
" na_count = wo_duplicates[col].isna().sum()\n",
|
|
" rel_count = na_count / len(wo_duplicates)\n",
|
|
" print(f'Feature {col}: number of NA vals {na_count}, relative {rel_count:.2%}')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"wo_na = wo_duplicates.dropna(how='any', subset=date_cols).reset_index(drop=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"RangeIndex: 123480 entries, 0 to 123479\n",
|
|
"Data columns (total 20 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 VorgangsID 123480 non-null int64 \n",
|
|
" 1 ObjektID 123480 non-null int64 \n",
|
|
" 2 HObjektText 123464 non-null object \n",
|
|
" 3 ObjektArtID 123480 non-null int64 \n",
|
|
" 4 ObjektArtText 122932 non-null object \n",
|
|
" 5 VorgangsTypID 123480 non-null int64 \n",
|
|
" 6 VorgangsTypName 123480 non-null object \n",
|
|
" 7 VorgangsDatum 123480 non-null datetime64[ns]\n",
|
|
" 8 VorgangsStatusId 123480 non-null int64 \n",
|
|
" 9 VorgangsPrioritaet 123480 non-null int64 \n",
|
|
" 10 VorgangsBeschreibung 120389 non-null object \n",
|
|
" 11 VorgangsOrt 445 non-null object \n",
|
|
" 12 VorgangsArtText 123480 non-null object \n",
|
|
" 13 ErledigungsDatum 123480 non-null datetime64[ns]\n",
|
|
" 14 ErledigungsArtText 123428 non-null object \n",
|
|
" 15 ErledigungsBeschreibung 117900 non-null object \n",
|
|
" 16 MPMelderArbeitsplatz 6110 non-null object \n",
|
|
" 17 MPAbteilungBezeichnung 6110 non-null object \n",
|
|
" 18 Arbeitsbeginn 123480 non-null datetime64[ns]\n",
|
|
" 19 ErstellungsDatum 123480 non-null datetime64[ns]\n",
|
|
"dtypes: datetime64[ns](4), int64(6), object(10)\n",
|
|
"memory usage: 18.8+ MB\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"wo_na.info()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### Unlogische Einträge\n",
|
|
"\n",
|
|
"- nach Prozessablauf Datumsangaben, die in anderer chronologischer Reihenfolge erscheinen"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 115,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Planung vor Erstellung, Treffer 3966\n",
|
|
"Arbeitsbeginn vor Erstellung, Treffer 4118\n",
|
|
"Arbeitsbeginn vor Planung, Treffer 9356\n",
|
|
"Erledigung vor Erstellung, Treffer 3681\n",
|
|
"Erledigung vor Planung, Treffer 8142\n",
|
|
"Erledigung vor Arbeitsbeginn, Treffer 1\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Planung des Vorgangs vor Erstellung\n",
|
|
"matches = (wo_na['VorgangsDatum'] < wo_na['ErstellungsDatum']).sum()\n",
|
|
"print(f'Planung vor Erstellung, Treffer {matches}')\n",
|
|
"\n",
|
|
"# Arbeitsbeginn vor Erstellung\n",
|
|
"matches = (wo_na['Arbeitsbeginn'] < wo_na['ErstellungsDatum']).sum()\n",
|
|
"print(f'Arbeitsbeginn vor Erstellung, Treffer {matches}')\n",
|
|
"\n",
|
|
"# Arbeitsbeginn vor Planung\n",
|
|
"matches = (wo_na['Arbeitsbeginn'] < wo_na['VorgangsDatum']).sum()\n",
|
|
"print(f'Arbeitsbeginn vor Planung, Treffer {matches}')\n",
|
|
"\n",
|
|
"# Erledigung vor Erstellung\n",
|
|
"matches = (wo_na['ErledigungsDatum'] < wo_na['ErstellungsDatum']).sum()\n",
|
|
"print(f'Erledigung vor Erstellung, Treffer {matches}')\n",
|
|
"\n",
|
|
"# Erledigung vor Planung\n",
|
|
"matches = (wo_na['ErledigungsDatum'] < wo_na['VorgangsDatum']).sum()\n",
|
|
"print(f'Erledigung vor Planung, Treffer {matches}')\n",
|
|
"\n",
|
|
"# Erledigung vor Arbeitsbeginn\n",
|
|
"matches = (wo_na['ErledigungsDatum'] < wo_na['Arbeitsbeginn']).sum()\n",
|
|
"print(f'Erledigung vor Arbeitsbeginn, Treffer {matches}')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 125,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Number of illogical entries: 13215\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"filter_illogical = (\n",
|
|
" (wo_na['VorgangsDatum'] < wo_na['ErstellungsDatum']) |\n",
|
|
" (wo_na['Arbeitsbeginn'] < wo_na['ErstellungsDatum']) |\n",
|
|
" (wo_na['Arbeitsbeginn'] < wo_na['VorgangsDatum']) |\n",
|
|
" (wo_na['ErledigungsDatum'] < wo_na['ErstellungsDatum']) |\n",
|
|
" (wo_na['ErledigungsDatum'] < wo_na['VorgangsDatum']) |\n",
|
|
" (wo_na['ErledigungsDatum'] < wo_na['Arbeitsbeginn'])\n",
|
|
")\n",
|
|
"print(f'Number of illogical entries: {filter_illogical.sum()}')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 131,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"logical = wo_na.loc[~filter_illogical,:].reset_index(drop=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 132,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"RangeIndex: 110265 entries, 0 to 110264\n",
|
|
"Data columns (total 20 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 VorgangsID 110265 non-null int64 \n",
|
|
" 1 ObjektID 110265 non-null int64 \n",
|
|
" 2 HObjektText 110252 non-null object \n",
|
|
" 3 ObjektArtID 110265 non-null int64 \n",
|
|
" 4 ObjektArtText 109788 non-null object \n",
|
|
" 5 VorgangsTypID 110265 non-null int64 \n",
|
|
" 6 VorgangsTypName 110265 non-null object \n",
|
|
" 7 VorgangsDatum 110265 non-null datetime64[ns]\n",
|
|
" 8 VorgangsStatusId 110265 non-null int64 \n",
|
|
" 9 VorgangsPrioritaet 110265 non-null int64 \n",
|
|
" 10 VorgangsBeschreibung 108683 non-null object \n",
|
|
" 11 VorgangsOrt 441 non-null object \n",
|
|
" 12 VorgangsArtText 110265 non-null object \n",
|
|
" 13 ErledigungsDatum 110265 non-null datetime64[ns]\n",
|
|
" 14 ErledigungsArtText 110215 non-null object \n",
|
|
" 15 ErledigungsBeschreibung 106105 non-null object \n",
|
|
" 16 MPMelderArbeitsplatz 6029 non-null object \n",
|
|
" 17 MPAbteilungBezeichnung 6029 non-null object \n",
|
|
" 18 Arbeitsbeginn 110265 non-null datetime64[ns]\n",
|
|
" 19 ErstellungsDatum 110265 non-null datetime64[ns]\n",
|
|
"dtypes: datetime64[ns](4), int64(6), object(10)\n",
|
|
"memory usage: 16.8+ MB\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"logical.info()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Date Diffs"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Differenzen von:\n",
|
|
" - VorgangsDatum und Arbeitsbeginn (Plan zu Ist)\n",
|
|
" - Arbeitsbeginn zu ErledigungsDatum (Dauer im Ist)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### Planabweichungen"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 137,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>VorgangsID</th>\n",
|
|
" <th>ObjektID</th>\n",
|
|
" <th>HObjektText</th>\n",
|
|
" <th>ObjektArtID</th>\n",
|
|
" <th>ObjektArtText</th>\n",
|
|
" <th>VorgangsTypID</th>\n",
|
|
" <th>VorgangsTypName</th>\n",
|
|
" <th>VorgangsDatum</th>\n",
|
|
" <th>VorgangsStatusId</th>\n",
|
|
" <th>VorgangsPrioritaet</th>\n",
|
|
" <th>VorgangsBeschreibung</th>\n",
|
|
" <th>VorgangsOrt</th>\n",
|
|
" <th>VorgangsArtText</th>\n",
|
|
" <th>ErledigungsDatum</th>\n",
|
|
" <th>ErledigungsArtText</th>\n",
|
|
" <th>ErledigungsBeschreibung</th>\n",
|
|
" <th>MPMelderArbeitsplatz</th>\n",
|
|
" <th>MPAbteilungBezeichnung</th>\n",
|
|
" <th>Arbeitsbeginn</th>\n",
|
|
" <th>ErstellungsDatum</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>58</td>\n",
|
|
" <td>257</td>\n",
|
|
" <td>107, Webmaschine, OM 220 EOS</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Luft-Webmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Gegengewicht wieder anbringen</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Gegengewicht an der Webmaschine abgefallen</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Schraube ausgebohrt\\nGegengewicht wieder angeb...</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>81</td>\n",
|
|
" <td>138</td>\n",
|
|
" <td>00138, Schärmaschine 9,</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>Schärmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>da ist etwas gebrochen. (Herr Heininger)</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>zentrale Bremsenverstellung linke Gatterseite ...</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Bolzen gebrochen. Bolzen neu angefertig und di...</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>82</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Warenschau allgemein</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Klappbügel Portalkran H31 defekt</td>\n",
|
|
" <td>Warenschau allgemein</td>\n",
|
|
" <td>Allgemeine Reparaturarbeiten</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Feder ausgetauscht</td>\n",
|
|
" <td>Warenschau</td>\n",
|
|
" <td>Warenschau</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>76</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Neben der Türe</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-22</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Schraube nix mer gut</td>\n",
|
|
" <td>Neben der Türe</td>\n",
|
|
" <td>Kettbaum</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Schrauben ausgebohrt\\t\\nGewinde nachgeschnitten\\t</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>2019-03-22</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>111</td>\n",
|
|
" <td>241</td>\n",
|
|
" <td>294 C, Webmaschine, SG 240 EMS</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>Greifer-Webmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-04-01</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>KBK tauschen\\nUrsache vermutlich mechanisch</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Kupplung-Brems-Kombination</td>\n",
|
|
" <td>2019-04-08</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>da derzeit Keine Ersatzteile da Reparatur mit ...</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>2019-04-02</td>\n",
|
|
" <td>2019-04-01</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" VorgangsID ObjektID HObjektText ObjektArtID \\\n",
|
|
"0 58 257 107, Webmaschine, OM 220 EOS 3 \n",
|
|
"1 81 138 00138, Schärmaschine 9, 16 \n",
|
|
"2 82 0 Warenschau allgemein 0 \n",
|
|
"3 76 0 Neben der Türe 0 \n",
|
|
"4 111 241 294 C, Webmaschine, SG 240 EMS 5 \n",
|
|
"\n",
|
|
" ObjektArtText VorgangsTypID VorgangsTypName \\\n",
|
|
"0 Luft-Webmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"1 Schärmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"2 NaN 3 Reparaturauftrag (Portal) \n",
|
|
"3 NaN 3 Reparaturauftrag (Portal) \n",
|
|
"4 Greifer-Webmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"\n",
|
|
" VorgangsDatum VorgangsStatusId VorgangsPrioritaet \\\n",
|
|
"0 2019-03-21 5 0 \n",
|
|
"1 2019-03-25 5 0 \n",
|
|
"2 2019-03-25 5 0 \n",
|
|
"3 2019-03-22 5 0 \n",
|
|
"4 2019-04-01 5 0 \n",
|
|
"\n",
|
|
" VorgangsBeschreibung VorgangsOrt \\\n",
|
|
"0 Gegengewicht wieder anbringen NaN \n",
|
|
"1 da ist etwas gebrochen. (Herr Heininger) NaN \n",
|
|
"2 Klappbügel Portalkran H31 defekt Warenschau allgemein \n",
|
|
"3 Schraube nix mer gut Neben der Türe \n",
|
|
"4 KBK tauschen\\nUrsache vermutlich mechanisch NaN \n",
|
|
"\n",
|
|
" VorgangsArtText ErledigungsDatum \\\n",
|
|
"0 Gegengewicht an der Webmaschine abgefallen 2019-03-21 \n",
|
|
"1 zentrale Bremsenverstellung linke Gatterseite ... 2019-03-25 \n",
|
|
"2 Allgemeine Reparaturarbeiten 2019-03-25 \n",
|
|
"3 Kettbaum 2019-03-25 \n",
|
|
"4 Kupplung-Brems-Kombination 2019-04-08 \n",
|
|
"\n",
|
|
" ErledigungsArtText ErledigungsBeschreibung \\\n",
|
|
"0 Reparatur UTT Schraube ausgebohrt\\nGegengewicht wieder angeb... \n",
|
|
"1 Reparatur UTT Bolzen gebrochen. Bolzen neu angefertig und di... \n",
|
|
"2 Reparatur UTT Feder ausgetauscht \n",
|
|
"3 Reparatur UTT Schrauben ausgebohrt\\t\\nGewinde nachgeschnitten\\t \n",
|
|
"4 Reparatur UTT da derzeit Keine Ersatzteile da Reparatur mit ... \n",
|
|
"\n",
|
|
" MPMelderArbeitsplatz MPAbteilungBezeichnung Arbeitsbeginn ErstellungsDatum \n",
|
|
"0 Weberei Weberei 2019-03-21 2019-03-21 \n",
|
|
"1 Vorwerk Vorwerk 2019-03-25 2019-03-25 \n",
|
|
"2 Warenschau Warenschau 2019-03-25 2019-03-25 \n",
|
|
"3 Vorwerk Vorwerk 2019-03-25 2019-03-22 \n",
|
|
"4 Weberei Weberei 2019-04-02 2019-04-01 "
|
|
]
|
|
},
|
|
"execution_count": 137,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"logical.head()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 138,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"MAX_DATE_DIFF = 1000"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 142,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>date_diff</th>\n",
|
|
" <th>days</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>0 days</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>0 days</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>0 days</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>3 days</td>\n",
|
|
" <td>3</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>1 days</td>\n",
|
|
" <td>1</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" date_diff days\n",
|
|
"0 0 days 0\n",
|
|
"1 0 days 0\n",
|
|
"2 0 days 0\n",
|
|
"3 3 days 3\n",
|
|
"4 1 days 1"
|
|
]
|
|
},
|
|
"execution_count": 142,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"date_diff = logical['Arbeitsbeginn'] - logical['VorgangsDatum']\n",
|
|
"date_diff = date_diff.to_frame()\n",
|
|
"date_diff.columns = ['date_diff']\n",
|
|
"date_diff['days'] = date_diff['date_diff'].apply(lambda x: x.days)\n",
|
|
"date_diff = date_diff.loc[((date_diff['days'] <= MAX_DATE_DIFF) & \n",
|
|
" (date_diff['days'] >= -MAX_DATE_DIFF)), :]\n",
|
|
"#date_diff = date_diff.reset_index(drop=True)\n",
|
|
"date_diff.head()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 143,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"Index: 110265 entries, 0 to 110264\n",
|
|
"Data columns (total 2 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 date_diff 110265 non-null timedelta64[ns]\n",
|
|
" 1 days 110265 non-null int64 \n",
|
|
"dtypes: int64(1), timedelta64[ns](1)\n",
|
|
"memory usage: 2.5 MB\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"date_diff.info()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 144,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"count 110265.000000\n",
|
|
"mean 0.994939\n",
|
|
"std 6.599087\n",
|
|
"min 0.000000\n",
|
|
"25% 0.000000\n",
|
|
"50% 0.000000\n",
|
|
"75% 0.000000\n",
|
|
"max 392.000000\n",
|
|
"Name: days, dtype: float64"
|
|
]
|
|
},
|
|
"execution_count": 144,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"date_diff['days'].describe()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 146,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>date_diff</th>\n",
|
|
" <th>days</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>296</th>\n",
|
|
" <td>392 days</td>\n",
|
|
" <td>392</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5982</th>\n",
|
|
" <td>358 days</td>\n",
|
|
" <td>358</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>109336</th>\n",
|
|
" <td>303 days</td>\n",
|
|
" <td>303</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" date_diff days\n",
|
|
"296 392 days 392\n",
|
|
"5982 358 days 358\n",
|
|
"109336 303 days 303"
|
|
]
|
|
},
|
|
"execution_count": 146,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"date_diff.loc[date_diff['days'] > 300]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 147,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"VorgangsID 136387\n",
|
|
"ObjektID 1820\n",
|
|
"HObjektText 01821, Phenolphtaleinindikatorlösung 0,1%, \n",
|
|
"ObjektArtID 105\n",
|
|
"ObjektArtText Chemische Prüfmittel\n",
|
|
"VorgangsTypID 1\n",
|
|
"VorgangsTypName Wartung\n",
|
|
"VorgangsDatum 2022-02-28 00:00:00\n",
|
|
"VorgangsStatusId 5\n",
|
|
"VorgangsPrioritaet 0\n",
|
|
"VorgangsBeschreibung Jährliche Kontrolle des Mindeshaltbarkeitsdatum\\n\n",
|
|
"VorgangsOrt NaN\n",
|
|
"VorgangsArtText Prüfmittelüberwachung jährlich\n",
|
|
"ErledigungsDatum 2023-03-27 00:00:00\n",
|
|
"ErledigungsArtText Intern UTT - Prüfmittelkontrolle\n",
|
|
"ErledigungsBeschreibung laut Prüfplan\n",
|
|
"MPMelderArbeitsplatz NaN\n",
|
|
"MPAbteilungBezeichnung NaN\n",
|
|
"Arbeitsbeginn 2023-03-27 00:00:00\n",
|
|
"ErstellungsDatum 2021-08-27 00:00:00\n",
|
|
"Name: 296, dtype: object"
|
|
]
|
|
},
|
|
"execution_count": 147,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"logical.loc[296,:]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 145,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<Axes: xlabel='days', ylabel='Density'>"
|
|
]
|
|
},
|
|
"execution_count": 145,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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Dxs2TDt37kzYhyf63iFDhpgvGAAAdDhW1+yEQiFNmDBBs2fPVlZWlnr37q1Zs2YpOztbo0aNUjgcVkVFhdLT05WSkqLc3FwNGTJEt912m+677z7t379f9957ry6++GJGdgAAQKMc1/IGLuFwWHPmzNGSJUt04MABDRs2TNOnT1efPn306aef6txzz9XMmTN16aWXSpJ27dql+++/X2+++aaSk5N1wQUXaNq0aUpOZoEvAABoyHrYAQAAMKlj37wPAADQBMIOAADwNcIOAADwNcIOAADwNcIOAADwNcIOAADwNcIOAADwNcKOQZFIRPPmzVNBQYFyc3M1ceLEhEdddESfffaZBgwY0ODXiy++KEn64IMPNGHCBJ122mn63ve+pwULFliu+NspLi7WVVddlXCsqZ462nVurMdp06Y1uKZnnXVW7PX23uNXX32l6dOn66yzztKQIUM0fvx4rV27Nva6H65hUz129GsoHdo0tqioSPn5+crLy9ONN96orVu3xl73w3Vsqkc/XMd4//rXv5SXl6clS5bEjlm5ji6MefTRR93hw4e7f//7390PPvjAnThxojtq1Ci3urradmkt9tprr7mDBw92y8rK3PLy8tivqqoqt6Kiwj3zzDPdX/ziF+7WrVvdl156yR08eLD70ksv2S67WZ566il3wIAB7oQJE2LHmtNTR7rOjfXouq57ySWXuHPmzEm4prt27Yq93t57vO6669wxY8a4JSUl7rZt29wHH3zQPfXUU92tW7f65hoeqUfX7fjX0HVd97LLLnMvv/xyd8OGDe7WrVvdyZMnuyNGjHD379/vm+t4pB5d1x/XMaqmpsa99NJL3f79+7uLFy92Xdfev1MJO4ZUV1e7eXl57nPPPRc7tmfPHvfUU091V6xYYbGy1pk/f747ZsyYRl97/PHH3YKCAvfgwYOxY4888oh7/vnne1Vei+zcudO9/vrr3dNOO8294IILEoJAUz11lOt8pB5ra2vdwYMHu6tWrWr0ve29x+3bt7v9+/d3161bFzsWiUTcUaNGub/+9a99cQ2b6rGjX0PXPfQfwdtuu8398MMPY8c++OADt3///u769et9cR2b6tEP1zHeI4884l511VUJYcfWdWQay5BNmzZp3759ys/Pjx3LyMjQwIEDVVJSYrGy1tm8ebNOPPHERl9bu3athg0bpqSkuufL5ufn61//+pd27drlVYnf2j//+U9169ZNf/zjH5Wbm5vwWlM9dZTrfKQet2/frurqavXr16/R97b3HjMzM/Xkk09q0KBBsWOO48h1Xe3Zs8cX17CpHjv6NZQO9ThnzhyddNJJkqQvv/xSCxYsUHZ2tk488UTfXMcj9eiH6xhVUlKi559/Xr/85S8Tjtu6jlafeu5nO3fulCT16tUr4XiPHj1UWlpqo6Q28eGHH6p79+664oortH37dh177LG65ZZbVFBQoJ07d6p///4J5/fo0UOS9Pnnn+uYY46xUXKTzjnnHJ1zzjmNvtZUTx3lOh+pxw8//FCO4+j3v/+93njjDQUCARUWFuqnP/2p0tPT232PGRkZKiwsTDj2pz/9SR9//LFGjhypuXPndvhr2FSPHf0a1nfPPffohRdeUCgU0vz589WlSxff/G8xqrEe/XIdKysrdccdd+juu+9uUKut68jIjiFVVVWSpFAolHA8OTlZ1dXVNkpqtZqaGm3fvl179+7VT3/6Uz355JMaPHiwJk2apH/84x86cOBAo/1K6rA9N9WTH67zli1bFAgE1Lt3bz3++OO688479frrr+uWW25RJBLpcD2uW7dOP//5z3XuuefqnHPO8eU1rN+j367hNddco8WLF2vMmDG69dZb9c9//tN317GxHv1yHe+77z6ddtpp+uEPf9jgNVvXkZEdQ1JSUiQdCgjRn6VDFzM1NdVWWa0SCoVUUlKipKSk2F/EQYMGadu2bVqwYIFSUlJUU1OT8J7oX84uXbp4Xm9baKonP1znyZMn69prr1VGRoYkqX///urevbsuv/xyvffeex2qx1dffVVTp05Vbm6u5syZI8l/17CxHv10DSXFpsoffPBBvfvuu3r22Wd9dx0b6/Ghhx7q8Ndx6dKlWrt2rZYvX97o67auIyM7hkSH4MrLyxOOl5eXKzs720ZJbaJLly4NEnf//v1VVlam7OzsRvuVpJ49e3pWY1tqqic/XGfHcWL/co2KDjPv3Lmzw/T47LPPavLkyTrrrLP0u9/9LvYvSj9dw8P16IdruGvXLq1YsULhcDh2LBAIqF+/frE6O/p1bKpHP1zHxYsXa9euXfre976nvLw85eXlSZLuvfdejR492tp1JOwYkpOTo7S0NK1evTp2rLKyUhs3btTQoUMtVtZymzZtUl5eXsLeHpL0/vvv68QTT9SwYcO0bt26hP8h/+Mf/9Dxxx/fbtfrNKWpnvxwnW+//XZdf/31Ccfee+89SYf+v8+O0ONzzz2nBx98UFdeeaV+/etfJwRyv1zDI/Xoh2tYXl6u22+/XWvWrIkdO3jwoDZu3Kh+/fr54jo21aMfruPs2bO1cuVKLV26NPZLkqZMmaInn3zS3nVs8X1caNKcOXPcM844w3311VdjewWcd9557XI/hOYIh8PuZZdd5l500UVuSUmJu3XrVvehhx5yBw0a5G7atMn98ssv3WHDhrl33nmnu2XLFnfx4sXu4MGD3SVLltguvdnuvPPOhNuym9NTR7vO9Xv861//6g4YMMAtLi52d+zY4f797393zznnHPdnP/tZ7Jz23ONHH33knnLKKe6tt96asDdJeXm5W1lZ6Ytr2FSPHf0auu6hW+knTpzonn/++W5JSYm7efNm97bbbnOHDRvmfvbZZ764jk316Ifr2Jj4W89tXUfCjkG1tbXur371Kzc/P9897bTT3EmTJrmffPKJ7bJaZdeuXe60adPcESNGuIMHD3Yvv/xyt6SkJPb6+vXr3R//+MfuoEGD3LPPPtt95plnLFb77dUPAq7bdE8d7To31uMrr7ziXnzxxe6pp57qjhgxwn344YfdAwcOxF5vzz3Onz/f7d+/f6O/7rzzTtd1O/41bE6PHfkaRlVWVrr33nuvO2LECPfUU091J06cmLAnTUe/jq7bdI9+uI71xYcd17VzHR3Xdd2WjwsBAAC0b6zZAQAAvkbYAQAAvkbYAQAAvkbYAQAAvkbYAQAAvkbYAQAAvkbYAQAAvkbYAdDhLFmyRAMGDNCnn35quxQAHQBhBwAA+BphBwAA+BphB0C7FolEVFxcrO9973vKzc3VLbfcoj179iSc8+qrr+qKK65QXl6eBg0apAsuuEDPPvusJKm2tlYjR47U7bff3uCzL7zwQk2bNk2S9M9//lPXXHONTj/9dOXl5enaa6/V+vXrzTcIwDjCDoB2bdasWXrsscc0duxY/fa3v1VmZqYeeeSR2Ot///vfdeutt+qUU05RcXGxHn30UfXu3VsPPvig3n77bSUlJeniiy/Wq6++qr1798bet379en300Ue69NJLtXfvXt1www3KzMzUvHnzNHfuXFVVVen666/X119/baNtAG0oyXYBAHA4lZWVeuaZZ3T11Vdr8uTJkqSCggKVlZXpzTfflCRt3bpVF198sX7xi1/E3peXl6czzzxTJSUlGjJkiMaOHavf/e53+vOf/6yxY8dKkl5++WX17dtXQ4cO1fr161VRUaGrrrpKp59+uiTphBNO0KJFi7R3716lp6d73DmAtkTYAdBuvfvuuzp48KDOPffchOMXXnhhLOzccMMNkqT9+/fr448/1r/+9S+99957kqSDBw9Kko4//nidfvrpWrZsmcaOHauamhqtXLlS11xzjRzH0UknnaSsrCzdfPPNuvDCC1VYWKjhw4frjjvu8LBbAKYwjQWg3YquzcnKyko43r1799jPFRUVmjx5sk4//XRdeumlmjdvniorKyVJruvGzhs3bpzWrFmjzz//XK+99poqKyt1ySWXSJK6du2q//mf/1FhYaFWrlypm2++WcOHD9f06dNVXV1tuk0AhjGyA6DdyszMlCTt2rVLJ5xwQuz4V199Fft56tSp2rZtm5566ikNGTJEoVBIVVVVevHFFxM+64ILLtCMGTP05z//We+8846GDx+u7373u7HXTzjhBM2aNUvhcFgbNmzQsmXL9Ic//EF9+vTRjTfeaLZRAEYxsgOg3crLy1NKSopeeeWVhON/+9vfYj+vW7dO559/vvLz8xUKhSRJb7zxhqRDd3JFdenSRT/4wQ+0YsUKvfnmm7FRHUl65ZVXlJ+fry+++ELBYFB5eXm67777lJGRoZ07d5psEYAHGNkB0G517dpVt9xyi379618rNTVV+fn5ev311xPCzqmnnqrly5frlFNOUXZ2tt555x098cQTchxHVVVVCZ83btw4XX755UpLS9N5550XOz5kyBBFIhHdeuutuvHGG9W1a1f96U9/0tdff51wHoCOyXHjJ7UBoB165pln9Pvf/15lZWXKy8vThRdeqPvuu0+vvfaaHMfRgw8+qLVr10qSjjvuOF199dX64x//qK+++kovvfRSwmfl5+frvPPO0wMPPJBwfMOGDfrNb36j999/X1VVVTrppJP07//+7xo1apRnfQIwg7ADoNPYsGGDLrvsMi1evFiDBg2yXQ4AjzCNBcD3Vq9erdWrV2vp0qXKz88n6ACdDAuUAfje7t279dRTT+mYY47RzJkzbZcDwGNMYwEAAF9jZAcAAPgaYQcAAPgaYQcAAPgaYQcAAPgaYQcAAPgaYQcAAPgaYQcAAPgaYQcAAPgaYQcAAPja/weD5PSu+y91RwAAAABJRU5ErkJggg==",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"sns.kdeplot(data=date_diff, x='days')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### Ist-Dauer"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 156,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>VorgangsID</th>\n",
|
|
" <th>ObjektID</th>\n",
|
|
" <th>HObjektText</th>\n",
|
|
" <th>ObjektArtID</th>\n",
|
|
" <th>ObjektArtText</th>\n",
|
|
" <th>VorgangsTypID</th>\n",
|
|
" <th>VorgangsTypName</th>\n",
|
|
" <th>VorgangsDatum</th>\n",
|
|
" <th>VorgangsStatusId</th>\n",
|
|
" <th>VorgangsPrioritaet</th>\n",
|
|
" <th>VorgangsBeschreibung</th>\n",
|
|
" <th>VorgangsOrt</th>\n",
|
|
" <th>VorgangsArtText</th>\n",
|
|
" <th>ErledigungsDatum</th>\n",
|
|
" <th>ErledigungsArtText</th>\n",
|
|
" <th>ErledigungsBeschreibung</th>\n",
|
|
" <th>MPMelderArbeitsplatz</th>\n",
|
|
" <th>MPAbteilungBezeichnung</th>\n",
|
|
" <th>Arbeitsbeginn</th>\n",
|
|
" <th>ErstellungsDatum</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>58</td>\n",
|
|
" <td>257</td>\n",
|
|
" <td>107, Webmaschine, OM 220 EOS</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Luft-Webmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Gegengewicht wieder anbringen</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Gegengewicht an der Webmaschine abgefallen</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Schraube ausgebohrt\\nGegengewicht wieder angeb...</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" <td>2019-03-21</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>81</td>\n",
|
|
" <td>138</td>\n",
|
|
" <td>00138, Schärmaschine 9,</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>Schärmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>da ist etwas gebrochen. (Herr Heininger)</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>zentrale Bremsenverstellung linke Gatterseite ...</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Bolzen gebrochen. Bolzen neu angefertig und di...</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>82</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Warenschau allgemein</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Klappbügel Portalkran H31 defekt</td>\n",
|
|
" <td>Warenschau allgemein</td>\n",
|
|
" <td>Allgemeine Reparaturarbeiten</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Feder ausgetauscht</td>\n",
|
|
" <td>Warenschau</td>\n",
|
|
" <td>Warenschau</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>76</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Neben der Türe</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-03-22</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>Schraube nix mer gut</td>\n",
|
|
" <td>Neben der Türe</td>\n",
|
|
" <td>Kettbaum</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>Schrauben ausgebohrt\\t\\nGewinde nachgeschnitten\\t</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>Vorwerk</td>\n",
|
|
" <td>2019-03-25</td>\n",
|
|
" <td>2019-03-22</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>111</td>\n",
|
|
" <td>241</td>\n",
|
|
" <td>294 C, Webmaschine, SG 240 EMS</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>Greifer-Webmaschine</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Reparaturauftrag (Portal)</td>\n",
|
|
" <td>2019-04-01</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>KBK tauschen\\nUrsache vermutlich mechanisch</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>Kupplung-Brems-Kombination</td>\n",
|
|
" <td>2019-04-08</td>\n",
|
|
" <td>Reparatur UTT</td>\n",
|
|
" <td>da derzeit Keine Ersatzteile da Reparatur mit ...</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>Weberei</td>\n",
|
|
" <td>2019-04-02</td>\n",
|
|
" <td>2019-04-01</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" VorgangsID ObjektID HObjektText ObjektArtID \\\n",
|
|
"0 58 257 107, Webmaschine, OM 220 EOS 3 \n",
|
|
"1 81 138 00138, Schärmaschine 9, 16 \n",
|
|
"2 82 0 Warenschau allgemein 0 \n",
|
|
"3 76 0 Neben der Türe 0 \n",
|
|
"4 111 241 294 C, Webmaschine, SG 240 EMS 5 \n",
|
|
"\n",
|
|
" ObjektArtText VorgangsTypID VorgangsTypName \\\n",
|
|
"0 Luft-Webmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"1 Schärmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"2 NaN 3 Reparaturauftrag (Portal) \n",
|
|
"3 NaN 3 Reparaturauftrag (Portal) \n",
|
|
"4 Greifer-Webmaschine 3 Reparaturauftrag (Portal) \n",
|
|
"\n",
|
|
" VorgangsDatum VorgangsStatusId VorgangsPrioritaet \\\n",
|
|
"0 2019-03-21 5 0 \n",
|
|
"1 2019-03-25 5 0 \n",
|
|
"2 2019-03-25 5 0 \n",
|
|
"3 2019-03-22 5 0 \n",
|
|
"4 2019-04-01 5 0 \n",
|
|
"\n",
|
|
" VorgangsBeschreibung VorgangsOrt \\\n",
|
|
"0 Gegengewicht wieder anbringen NaN \n",
|
|
"1 da ist etwas gebrochen. (Herr Heininger) NaN \n",
|
|
"2 Klappbügel Portalkran H31 defekt Warenschau allgemein \n",
|
|
"3 Schraube nix mer gut Neben der Türe \n",
|
|
"4 KBK tauschen\\nUrsache vermutlich mechanisch NaN \n",
|
|
"\n",
|
|
" VorgangsArtText ErledigungsDatum \\\n",
|
|
"0 Gegengewicht an der Webmaschine abgefallen 2019-03-21 \n",
|
|
"1 zentrale Bremsenverstellung linke Gatterseite ... 2019-03-25 \n",
|
|
"2 Allgemeine Reparaturarbeiten 2019-03-25 \n",
|
|
"3 Kettbaum 2019-03-25 \n",
|
|
"4 Kupplung-Brems-Kombination 2019-04-08 \n",
|
|
"\n",
|
|
" ErledigungsArtText ErledigungsBeschreibung \\\n",
|
|
"0 Reparatur UTT Schraube ausgebohrt\\nGegengewicht wieder angeb... \n",
|
|
"1 Reparatur UTT Bolzen gebrochen. Bolzen neu angefertig und di... \n",
|
|
"2 Reparatur UTT Feder ausgetauscht \n",
|
|
"3 Reparatur UTT Schrauben ausgebohrt\\t\\nGewinde nachgeschnitten\\t \n",
|
|
"4 Reparatur UTT da derzeit Keine Ersatzteile da Reparatur mit ... \n",
|
|
"\n",
|
|
" MPMelderArbeitsplatz MPAbteilungBezeichnung Arbeitsbeginn ErstellungsDatum \n",
|
|
"0 Weberei Weberei 2019-03-21 2019-03-21 \n",
|
|
"1 Vorwerk Vorwerk 2019-03-25 2019-03-25 \n",
|
|
"2 Warenschau Warenschau 2019-03-25 2019-03-25 \n",
|
|
"3 Vorwerk Vorwerk 2019-03-25 2019-03-22 \n",
|
|
"4 Weberei Weberei 2019-04-02 2019-04-01 "
|
|
]
|
|
},
|
|
"execution_count": 156,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"logical.head()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 157,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"MAX_DATE_DIFF = 1000"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 158,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>date_diff</th>\n",
|
|
" <th>days</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>0 days</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>0 days</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>0 days</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>0 days</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>6 days</td>\n",
|
|
" <td>6</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" date_diff days\n",
|
|
"0 0 days 0\n",
|
|
"1 0 days 0\n",
|
|
"2 0 days 0\n",
|
|
"3 0 days 0\n",
|
|
"4 6 days 6"
|
|
]
|
|
},
|
|
"execution_count": 158,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"date_diff = logical['ErledigungsDatum'] - logical['Arbeitsbeginn']\n",
|
|
"date_diff = date_diff.to_frame()\n",
|
|
"date_diff.columns = ['date_diff']\n",
|
|
"date_diff['days'] = date_diff['date_diff'].apply(lambda x: x.days)\n",
|
|
"date_diff = date_diff.loc[((date_diff['days'] <= MAX_DATE_DIFF) & \n",
|
|
" (date_diff['days'] >= -MAX_DATE_DIFF)), :]\n",
|
|
"#date_diff = date_diff.reset_index(drop=True)\n",
|
|
"date_diff.head()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 159,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>date_diff</th>\n",
|
|
" <th>days</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>count</th>\n",
|
|
" <td>110265</td>\n",
|
|
" <td>110265.000000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>mean</th>\n",
|
|
" <td>0 days 04:03:16.283498843</td>\n",
|
|
" <td>0.168938</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>std</th>\n",
|
|
" <td>3 days 09:12:15.416163344</td>\n",
|
|
" <td>3.383512</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>min</th>\n",
|
|
" <td>0 days 00:00:00</td>\n",
|
|
" <td>0.000000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>25%</th>\n",
|
|
" <td>0 days 00:00:00</td>\n",
|
|
" <td>0.000000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>50%</th>\n",
|
|
" <td>0 days 00:00:00</td>\n",
|
|
" <td>0.000000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>75%</th>\n",
|
|
" <td>0 days 00:00:00</td>\n",
|
|
" <td>0.000000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>max</th>\n",
|
|
" <td>486 days 00:00:00</td>\n",
|
|
" <td>486.000000</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" date_diff days\n",
|
|
"count 110265 110265.000000\n",
|
|
"mean 0 days 04:03:16.283498843 0.168938\n",
|
|
"std 3 days 09:12:15.416163344 3.383512\n",
|
|
"min 0 days 00:00:00 0.000000\n",
|
|
"25% 0 days 00:00:00 0.000000\n",
|
|
"50% 0 days 00:00:00 0.000000\n",
|
|
"75% 0 days 00:00:00 0.000000\n",
|
|
"max 486 days 00:00:00 486.000000"
|
|
]
|
|
},
|
|
"execution_count": 159,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"date_diff.describe()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 160,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>date_diff</th>\n",
|
|
" <th>days</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>106054</th>\n",
|
|
" <td>486 days</td>\n",
|
|
" <td>486</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" date_diff days\n",
|
|
"106054 486 days 486"
|
|
]
|
|
},
|
|
"execution_count": 160,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"date_diff.loc[date_diff['days'] > 300]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 161,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"VorgangsID 65407\n",
|
|
"ObjektID 55\n",
|
|
"HObjektText 503 C , Webmaschine, DL 280 EMS Breite 280 Bj....\n",
|
|
"ObjektArtID 3\n",
|
|
"ObjektArtText Luft-Webmaschine\n",
|
|
"VorgangsTypID 3\n",
|
|
"VorgangsTypName Reparaturauftrag (Portal)\n",
|
|
"VorgangsDatum 2020-11-19 00:00:00\n",
|
|
"VorgangsStatusId 5\n",
|
|
"VorgangsPrioritaet 0\n",
|
|
"VorgangsBeschreibung Schaltschrank ausrichten ist angefahren worden...\n",
|
|
"VorgangsOrt NaN\n",
|
|
"VorgangsArtText Maschineninfrastruktur\n",
|
|
"ErledigungsDatum 2022-03-21 00:00:00\n",
|
|
"ErledigungsArtText Intern UTT - Reparatur \n",
|
|
"ErledigungsBeschreibung Schanier eingebaut \n",
|
|
"MPMelderArbeitsplatz Weberei\n",
|
|
"MPAbteilungBezeichnung Weberei\n",
|
|
"Arbeitsbeginn 2020-11-20 00:00:00\n",
|
|
"ErstellungsDatum 2020-11-19 00:00:00\n",
|
|
"Name: 106054, dtype: object"
|
|
]
|
|
},
|
|
"execution_count": 161,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"logical.loc[106054,:]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 162,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<Axes: xlabel='days', ylabel='Density'>"
|
|
]
|
|
},
|
|
"execution_count": 162,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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ldbDGicAAOyhRcHp73//u8aOHau6urpmX+dZda2LEScAAOyhRcHpmWee0aWXXqrJkyerU6dOcjhatMYcATIYcQIAwBZaFJw+//xzLViwQL169Wrt60Ezjm+Aae11AABwtmvRUNF5552nw4cPt/a14CTYABMAAHtoUXB64IEH9Nxzz/k2wURwsTgcAAB7aNFU3TvvvKPy8nLl5OSoffv2io6O9nvdMAytX7++VS4QLA4HAMAuWhSckpKSeKxKCBm+DTAJTgAAWKlFwWn27NmtfR34Ab6pOo/FFwIAwFmuxRtgStLu3bu1adMmVVRU6O6779bevXuVkpKitm3bttb1Qcen6prbaBQAAIROi4KT2+3W1KlTtWLFCpmmKcMwdNNNN+m5557T3r179dprrzGV14pYHA4AgD206Ft1Cxcu1DvvvKOZM2dq06ZNvpGQSZMmyePxaN68ea16kWc7FocDAGAPLQpOK1asUF5enm677TYlJCT4jqekpCgvL0+bNm1qreuDJIdvcbi11wEAwNmuRcHpu+++01VXXdXsa506dVJ1dfUZXRT8+UacmKoDAMBSLQpOF110kf7+9783+1phYaEuuuiiM7oo+Dv+rTqCEwAAVmrR4vBhw4bpscce09GjR/XTn/5UhmFoz549Kigo0JIlS/TII4+09nWe1RhxAgDAHlo04nTHHXdo7NixeuuttzRy5EiZpqlf//rXmjdvnkaMGKEhQ4YE3JfH41F+fr769u2rtLQ0jRgxQnv27Dlp+6qqKo0fP14ZGRnKyMjQlClTVFtb69fmvffe04ABA9S9e3cNHDhQGzdu9Hv96NGjmjt3rvr27atrrrlGubm52rlz5+kVIYQMRpwAALCFFgUnSRo5cqTeffddPfnkk5ozZ45eeOEFffDBB/rVr351Wv0sWLBAy5Yt08yZM7V8+XIZhqGRI0eqvr6+2fZ5eXnau3evXnrpJeXn52vTpk2aPn267/XNmzdrwoQJGjp0qFatWqXs7GyNHj1au3fv9rWZNm2a3nzzTT3++ONasWKFEhISNHLkSB06dKhlxQgy7+JwBpwAALDWaQenNWvWKDc3V2lpabr++us1efJkTZkyRa+88oqKi4tPq6/6+notWbJEY8aMUf/+/ZWSkqJ58+apvLxc69ata9J+27ZtKiws1OzZs5WamqqsrCzNmDFDq1evVnl5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TNOk3sFQXV1tTp061bz22mvNq6++2hwxYoTfvk7UPLhODE6mSb1b2/79+83Jkyeb1157rdm9e3fzzjvvNIuKinyvh6rehmma5hmNnwEAAJwlWOMEAAAQIIITAABAgAhOAAAAASI4AQAABIjgBAAAECCCEwAAQIAITgAAAAEiOAE4K61cuVJXXnmlvv76a6svBUAYITgBAAAEiOAEAAAQIIITgB89j8ejBQsW6LrrrlNaWpoeeughHTx40K/N+vXrNXToUPXo0UPdunXTjTfeqNdee02S1NDQoOzsbI0fP75J3zfddJMmT54sSfr00081bNgw9ezZUz169NC9996rjz/+OPg3CCBkCE4AfvSefvppPffcc7rttts0f/58JSYmau7cub7X//a3v2n06NFKTU3VggUL9Oyzz+r888/X448/rq1btyoiIkKDBg3S+vXrdfjwYd/7Pv74Y33++ecaPHiwDh8+rPvvv1+JiYnKz8/XvHnzVFdXp/vuu0+HDh2y4rYBBEGE1RcAAMFUXV2tV199Vffcc4/GjBkjSerbt6/Ky8v1wQcfSJJ27dqlQYMG6be//a3vfT169FCfPn1UVFSk9PR03XbbbVq0aJH+9Kc/6bbbbpMkvfXWW7rwwgvVq1cvffzxx6qsrNTdd9+tnj17SpIuvfRSLVu2TIcPH1a7du1CfOcAgoHgBOBH7aOPPtLRo0d1/fXX+x2/6aabfMHp/vvvlyTV1tbqq6++0hdffKF//OMfkqSjR49Kki655BL17NlTq1ev1m233ab6+nqtXbtWw4YNk2EYuvzyy9W+fXs9+OCDuummm9S/f39lZWVp4sSJIbxbAMHGVB2AHzXvWqb27dv7He/QoYPv58rKSo0ZM0Y9e/bU4MGDlZ+fr+rqakmSaZq+drfffrsKCwv17bffasOGDaqurtatt94qSYqLi9P//M//qH///lq7dq0efPBBZWVl6bHHHpPL5Qr2bQIIEUacAPyoJSYmSpL279+vSy+91Hf8wIEDvp8ffvhh7d69W0uXLlV6eroiIyNVV1enP/7xj3593XjjjZo5c6b+9Kc/adu2bcrKytJ5553ne/3SSy/V008/Lbfbre3bt2v16tV644031KVLF40aNSq4NwogJBhxAvCj1qNHD0VHR+v999/3O/7Xv/7V9/OWLVt0ww03KDMzU5GRkZKkjRs3Smr8Rp5XbGysBgwYoDVr1uiDDz7wjTZJ0vvvv6/MzEzt27dPTqdTPXr00LRp0xQfH6+ysrJg3iKAEGLECcCPWlxcnB566CH97ne/U0xMjDIzM/X3v//dLzhdffXVeuedd5SamqqkpCRt27ZNL7zwggzDUF1dnV9/t99+u+688061bdtWP//5z33H09PT5fF4NHr0aI0aNUpxcXF67733dOjQIb92AMKbYZ44gQ8AP1KvvvqqXn75ZZWXl6tHjx666aabNG3aNG3YsEGGYejxxx9XcXGxJOniiy/WPffco7ffflsHDhzQm2++6ddXZmamfv7zn2vGjBl+x7dv367f//73+uSTT1RXV6fLL79c//Vf/6WcnJyQ3SeA4CI4AcBp2L59u+644w6tWLFC3bp1s/pyAIQYU3UAEICCggIVFBRo1apVyszMJDQBZykWhwNAAKqqqrR06VKde+65mj17ttWXA8AiTNUBAAAEiBEnAACAABGcAAAAAkRwAgAACBDBCQAAIEAEJwAAgAARnAAAAAJEcAIAAAgQwQkAACBABCcAAIAA/f+F04RVfuJNgAAAAABJRU5ErkJggg==",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"sns.kdeplot(data=date_diff, x='days')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"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.11.4"
|
|
},
|
|
"orig_nbformat": 4
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|