Skip to content

Instantly share code, notes, and snippets.

@ankostis
Last active February 9, 2023 11:09
Show Gist options
  • Save ankostis/c63fead7bd9b6c9e0ae61cc9036a0cae to your computer and use it in GitHub Desktop.
Save ankostis/c63fead7bd9b6c9e0ae61cc9036a0cae to your computer and use it in GitHub Desktop.
EEA-2014 data analyzed on 2016
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## Historical Notes from ankostis:\n",
"I've uploaded into this dropbox folder my previous attempts into reading & parsing the EEA db.\n",
"Probably you have seen them, they are hosted also in http://ipy.ankostis.io/.\n",
"\n",
"There are still good ideas in these notebooks, \n",
"- e.g. how to use `pandalone` when indexing *pandas* in a reasonable way\n",
"\n",
"but unfortunately I didn't have the nerve to re-apply this trick here, and it is irritating working with all these string-names as columns.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## Installation Notes:\n",
"<div class=\"alert alert-info\">\n",
"<p>This notebook requires **a fairly recent python** and the following extensions: </p>\n",
"<ol>\n",
"<li> [Jupyter Declarative Widget Extension](https://github.com/jupyter-incubator/declarativewidgets); <br>\n",
" To install its pre-requisites, *git*, *node.js* and *bower*, in **Windows** follow this steps:\n",
"\n",
" <ol>\n",
" <li>Install [*node.js* for Windows](https://gist.github.com/massahud/321a52f153e5d8f571be#file-portable-node-js-andnpm-on-windows-md).\n",
" <li>Install *git* (either from the [*Cygwin*](https://www.cygwin.com/) or from the [MingGW](https://git-for-windows.github.io/) distribution, or both), and ensure it is in the `PATH` when *ipython* is launched.\n",
" <li>Install [*bower* package-manager](https://bower.io/) by running: `npm install -g bower`.\n",
" <li>Read some tips in [this issue](https://github.com/jupyter-incubator/declarativewidgets/issues/377) (particularly if you have to install/upgrade the `ipywidgets` package);\n",
" </ol>\n",
"<li> (optional) [Jupyter Dashboards Layout](https://github.com/jupyter-incubator/declarativewidgets) extension, for code-less UI; \n",
"<li> (optional) [Jupyter Content Management Extensions](https://github.com/jupyter-incubator/dashboards) supporting importing other notebooks and searching them. \n",
"</ol>\n",
"\n",
"<p>Check everything is installed correctly: </p>\n",
"<ul>\n",
"<li>check that the 1st cell below runs without errors;\n",
"<li>check that the 2nd cell below opens up the *DeclarativeWidgets User-guide pages* in an emdedded frame;\n",
"<li><p>if they don't work, run the following 3 commands and compare their output with the samples provided here:</p>\n",
"<pre>\n",
"$ pip list| grep -E \"widgets|notebook|jupyter|ipython\"\n",
"ipython (4.2.0)\n",
"ipython-genutils (0.1.0)\n",
"ipython-sql (0.3.7.1)\n",
"ipywidgets (5.1.5)\n",
"jupyter (1.0.0)\n",
"jupyter-client (4.2.2)\n",
"jupyter-cms (0.5.0)\n",
"jupyter-console (4.1.1)\n",
"jupyter-core (4.1.0)\n",
"jupyter-dashboards (0.5.2)\n",
"jupyter-declarativewidgets (0.5.3.dev0)\n",
"notebook (4.2.1)\n",
"widgetsnbextension (1.2.3)\n",
"\n",
"</pre>\n",
"<pre>\n",
"$ jupyter nbextension list\n",
"Known nbextensions:\n",
" config dir: D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\etc\\jupyter\\nbconfig\n",
" notebook section\n",
" jupyter_cms/notebook/main enabled\n",
" - Validating: ok\n",
" declarativewidgets/js/main enabled\n",
" - Validating: ok\n",
" jupyter_dashboards/notebook/main enabled\n",
" - Validating: ok\n",
" jupyter-js-widgets/extension enabled\n",
" - Validating: ok\n",
" tree section\n",
" jupyter_cms/dashboard/main enabled\n",
" - Validating: ok\n",
" edit section\n",
" jupyter_cms/editor/main enabled\n",
" - Validating: ok\n",
"\n",
"</pre>\n",
"<pre>\n",
"$ jupyter serverextension list\n",
"config dir: D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\etc\\jupyter\n",
" jupyter_cms enabled\n",
" - Validating...\n",
" jupyter_cms ok\n",
" urth.widgets.ext.urth_import enabled\n",
" - Validating...\n",
" urth.widgets.ext.urth_import ok\n",
"\n",
"</pre>\n",
"</li>\n",
"</ul>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"D:\\Apps\\WinPython-64bit-3.5.1.3\\python-3.5.1.amd64\\lib\\site-packages\\urth\\widgets\\__init__.py:7: UserWarning: The `urth` package name is deprecated. Will be removed in version 0.7.0. Use 'declarativewidgets' instead.\n",
" warn(\"The `urth` package name is deprecated. Will be removed in version 0.7.0. \"\n",
"D:\\Apps\\WinPython-64bit-3.5.1.3\\python-3.5.1.amd64\\lib\\site-packages\\urth\\widgets\\widget_channels.py:5: UserWarning: The `urth` package name is deprecated. Will be removed in version 0.7.0. To use channel,import from `declarativewidgets` instead.\n",
" warn(\"The `urth` package name is deprecated. Will be removed in version 0.7.0. To use channel,\"\n"
]
},
{
"data": {
"application/javascript": [
"\n",
" window.Urth = window.Urth || {};\n",
" Urth._initialized = Urth._initialized || $.Deferred();\n",
" Urth.whenReady = Urth.whenReady || function(cb) {\n",
" Urth._initialized.then(function() {\n",
" Urth.whenReady(cb);\n",
" });\n",
" };\n",
" Urth.whenReady(function() { console.log(\"Declarative widgets connected.\") });\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import logging\n",
"from urth import widgets\n",
"from urth.widgets.widget_channels import channel\n",
"import sys\n",
"\n",
"def setup_logging(level):\n",
" log = logging.getLogger('eea')\n",
" rlog = logging.getLogger()\n",
" rlog.handlers[0].stream = sys.stderr\n",
" rlog.level = level\n",
"setup_logging(logging.INFO)\n",
"\n",
"try:\n",
" widgets.init()\n",
"except AttributeError:\n",
" log.warning(\"Running on `declarativewidgets < 0.6.x`!\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/html": [
"<link rel=\"import\" href=\"urth_components/urth-viz-table/urth-viz-table.html\" is=\"urth-core-import\">\n",
"<link rel=\"import\" href=\"urth_components/urth-viz-col/urth-viz-col.html\" is=\"urth-core-import\">\n",
"<link rel=\"import\" href=\"urth_components/urth-viz-cloud/urth-viz-cloud.html\" is=\"urth-core-import\">\n",
"<link rel='import' href='urth_components/urth-viz-line/urth-viz-line.html' is='urth-core-import'>\n",
"\n",
"<link rel='import' is='urth-core-import' \n",
" href='urth_components/paper-input/paper-input.html' package='PolymerElements/paper-input'>\n",
"<link rel='import' is='urth-core-import' \n",
" href='urth_components/paper-button/paper-button.html' package='PolymerElements/paper-button'>\n",
"<link rel='import' is='urth-core-import' \n",
" href='urth_components/paper-slider/paper-slider.html' package='PolymerElements/paper-slider'>\n",
"<link rel='import' is='urth-core-import' \n",
" href='urth_components/paper-checkbox/paper-checkbox.html' package='PolymerElements/paper-checkbox'>\n",
"<link rel=\"import\" is='urth-core-import' \n",
" href=\"urth_components/paper-listbox/paper-listbox.html\" package='PolymerElements/paper-listbox'>\n",
"<link rel=\"import\" is='urth-core-import' \n",
" href=\"urth_components/paper-item/paper-item.html\" package='PolymerElements/paper-item'>\n",
"<link rel=\"import\" is='urth-core-import' \n",
" href=\"urth_components/paper-tooltip/paper-tooltip.html\" package='PolymerElements/paper-tooltip'>\n",
"\n",
"<!-- NOTE: If 'DeclarativeWidgets' installed, you should see the \"documentations\" site as output. -->\n",
"<urth-help/>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%html\n",
"<link rel=\"import\" href=\"urth_components/urth-viz-table/urth-viz-table.html\" is=\"urth-core-import\">\n",
"<link rel=\"import\" href=\"urth_components/urth-viz-col/urth-viz-col.html\" is=\"urth-core-import\">\n",
"<link rel=\"import\" href=\"urth_components/urth-viz-cloud/urth-viz-cloud.html\" is=\"urth-core-import\">\n",
"<link rel='import' href='urth_components/urth-viz-line/urth-viz-line.html' is='urth-core-import'>\n",
"\n",
"<link rel='import' is='urth-core-import' \n",
" href='urth_components/paper-input/paper-input.html' package='PolymerElements/paper-input'>\n",
"<link rel='import' is='urth-core-import' \n",
" href='urth_components/paper-button/paper-button.html' package='PolymerElements/paper-button'>\n",
"<link rel='import' is='urth-core-import' \n",
" href='urth_components/paper-slider/paper-slider.html' package='PolymerElements/paper-slider'>\n",
"<link rel='import' is='urth-core-import' \n",
" href='urth_components/paper-checkbox/paper-checkbox.html' package='PolymerElements/paper-checkbox'>\n",
"<link rel=\"import\" is='urth-core-import' \n",
" href=\"urth_components/paper-listbox/paper-listbox.html\" package='PolymerElements/paper-listbox'>\n",
"<link rel=\"import\" is='urth-core-import' \n",
" href=\"urth_components/paper-item/paper-item.html\" package='PolymerElements/paper-item'>\n",
"<link rel=\"import\" is='urth-core-import' \n",
" href=\"urth_components/paper-tooltip/paper-tooltip.html\" package='PolymerElements/paper-tooltip'>\n",
"\n",
"<!-- NOTE: If 'DeclarativeWidgets' installed, you should see the \"documentations\" site as output. -->\n",
"<urth-help/>"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import os, sys\n",
"from os import path as osp\n",
"from boltons.setutils import IndexedSet\n",
"import itertools as itt\n",
"import functools as ft\n",
"from collections import defaultdict\n",
"from boltons.setutils import IndexedSet\n",
"from IPython.display import display\n",
"import numpy as np, pandas as pd, scipy\n",
"from matplotlib import pyplot as plt\n",
"\n",
"# PANDAS setup.\n",
"pd.DataFrame._metadata=['name']\n",
"idx = pd.IndexSlice\n",
"\n",
"def concat_levels(dfs, name=None, keys=None, **kws):\n",
" \"\"\":param list dfs: must contain *named* dataframes and series\"\"\"\n",
" if not keys:\n",
" keys=[df.name for df in dfs]\n",
" hdf = pd.concat(dfs, keys=keys, verify_integrity=True, **kws)\n",
" if name:\n",
" hdf.name = name\n",
" return hdf\n",
"def rawdesc(df):\n",
" descs = df.describe(percentiles=[], include='all').T\n",
"\n",
" nans = df.isnull().sum(); nans.name = 'NaNs'\n",
" zeros = (df == 0).sum(); zeros.name = 'ZEROs'\n",
" types = df.dtypes; types.name = 'TYPEs'\n",
"\n",
" return pd.concat((types, descs, nans, zeros), axis=1)\n",
"\n",
"pd.set_option(\"display.max_columns\", 30) # There are 24 EEA fields."
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# Load EEA-DB and parse Field-names."
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 29,
"hidden": false,
"row": 36,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"### EEA fields:\n",
"As listed when clicking the `\"Show table definition\"` in: http://www.eea.europa.eu/data-and-maps/data/#c17=&c11=&c5=all&c0=5&b_start=0&c12=vehicle+registrations\n",
"\n",
"| Field name | Field Definition | Data type | Primary key|\n",
"|------------|--------------------------------|------------|------------|\n",
"|ID | ID | integer | Yes|\n",
"|MS | Member state | varchar(2) | No |\n",
"|MP | Manufacturer pooling | varchar(120) | No |\n",
"|Mh | Manufacturer harmonised | varchar(120) | No |\n",
"|MAN | Manufacturer name OEM declaration | varchar(120) | No |\n",
"|MMS | Manufacturer name as in MS registry | varchar(120) | No |\n",
"|T | Type | varchar(120) | No |\n",
"|TAN | Type approval number | varchar(255) | No |\n",
"|Va | Variant | varchar(120) | No |\n",
"|Ve | Version | varchar(120) | No |\n",
"|Mk | Make | varchar(120) | No |\n",
"|Cn | Commercial name | varchar(120) | No |\n",
"|Ct | Category of the vehicle type approved | varchar(2) | No |\n",
"|r | Total new registrations | integer | No |\n",
"|m (kg) | Mass | integer | No |\n",
"|e (g/km) | Specific CO2 Emissions | integer | No |\n",
"|w (mm) | Wheel Base | integer | No |\n",
"|at1 (mm) | Axle width steering axle | integer | No |\n",
"|at2 (mm) | Axle width other axle | integer | No |\n",
"|Ft | Fuel type | varchar(120) | No |\n",
"|Fm | Fuel mode | varchar(1) | No |\n",
"|ec (cm3) | Engine capacity | integer | No |\n",
"|z (Wh/km) | Electric energy consumption | integer | No |\n",
"|IT | Innovative technology or group of innovative technologies | varchar(255) | No |\n",
"|Er (g/km) | Emissions reduction through innovative technologies | integer | No |\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"from pandalone.mappings import Pstep, pmods_from_tuples\n",
"\n",
"def column_pstep(cdf):\n",
" return pmods_from_tuples(cdf[['colkey', 'colname']].values).step()\n",
"\n",
"def column_dtypes(cdf):\n",
" return dict(zip(cdf.colname, cdf.coltype))\n",
"\n",
"def columns_df():\n",
" cdf = pd.DataFrame([\n",
" ['vid', 'id', np.int32],\n",
" ['nr', 'r', np.int32],\n",
" ['co2', 'e (g/km)', np.float16],\n",
" ['m', 'm (kg)', np.float16],\n",
" ['wheel', 'w (mm)', np.float16],\n",
" ['at1', 'at1 (mm)', np.float16],\n",
" ['at2', 'at2 (mm)', np.float16],\n",
" ['cap', 'ec (cm3)', np.float16],\n",
" ['p', 'ep (KW)', np.float16],\n",
" ['ev_consum', 'z (Wh/km)', np.float16],\n",
" ['p_tech', 'Er (g/km)', np.float16],\n",
" ['cat', 'Ct', np.object],\n",
" ['TAN', 'TAN', np.object],\n",
" ['maker', 'Mh', np.object],\n",
" ['variant', 'Va', np.object],\n",
" ['version', 'Ve', np.object],\n",
" ['model', 'Cn', np.object],\n",
" ['tan', 'TAN', np.object],\n",
" ['fuel', 'Ft', np.object],\n",
" ['fmode', 'Fm', np.object],\n",
"\n",
" ], columns=['colkey', 'names', 'coltype'])\n",
" cdf['colkey'] = '/' + cdf['colkey']\n",
" return cdf\n",
"\n",
"cdf = columns_df()\n",
"c = pmods_from_tuples(cdf.iloc[:, :2].values).step()\n",
"col_dtypes = defaultdict(lambda: object, cdf.iloc[:, 1:3].values)\n",
"#display(cdf, dtypes)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"eea_fname = 'CO2_passenger_cars_v9.csv'\n",
"na_values=['n.v.t.', 'n.a.', 'na', '-', 'n.b.', '#NAME?']\n",
"\n",
"def read_eea(fname, na_values):\n",
" df = pd.read_table(fname, sep='\\t', dtype=col_dtypes, \n",
" encoding='latin', #error_bad_lines=False,\n",
" na_values=na_values, low_memory=False)\n",
" return df\n",
"edf = read_eea(eea_fname, na_values=eea_fname)\n",
"edf.name = 'edf'"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 65,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# Research Uniques, NULLs and bad records\n",
"Peek into the quality of the database."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 29,
"hidden": false,
"row": 69,
"width": 9
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <style type=\"text/css\" >\n",
" \n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.09722330248113868%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.04277825309170102%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.4005600062222914%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.40833787042078246%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 2.835031500350004%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 9.38027939832208%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 42.14435715952399%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.584855634628545%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 12.43680485338726%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 1.1131903000253651%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 50.90612117912421%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 3.802123963263763%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 100.0%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.615485118378169%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 1.0966788519872444%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.103398436939157%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 58.248424982499806%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.3438638136578782%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.0007178785253817917%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.24455728431339704%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 100.0%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.10122087207883264%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.477891734346659%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.959109639194253%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 9.356350114142685%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.0738897098856654%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.032304533642180625%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.003888932099245547%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 1.289549124427492%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.7042388333995376%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 21.240829101838248%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 99.71763444668316%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.015555728396982188%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 100.0%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 100.0%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.13568521031207598%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" </style>\n",
"\n",
" <table id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" None>\n",
" \n",
"\n",
" <thead>\n",
" \n",
" <tr>\n",
" \n",
" <th class=\"blank\">\n",
" \n",
" <th class=\"col_heading level0 col0\">TYPEs\n",
" \n",
" <th class=\"col_heading level0 col1\">count\n",
" \n",
" <th class=\"col_heading level0 col2\">unique\n",
" \n",
" <th class=\"col_heading level0 col3\">top\n",
" \n",
" <th class=\"col_heading level0 col4\">freq\n",
" \n",
" <th class=\"col_heading level0 col5\">mean\n",
" \n",
" <th class=\"col_heading level0 col6\">std\n",
" \n",
" <th class=\"col_heading level0 col7\">min\n",
" \n",
" <th class=\"col_heading level0 col8\">50%\n",
" \n",
" <th class=\"col_heading level0 col9\">max\n",
" \n",
" <th class=\"col_heading level0 col10\">NaNs\n",
" \n",
" <th class=\"col_heading level0 col11\">ZEROs\n",
" \n",
" </tr>\n",
" \n",
" </thead>\n",
" <tbody>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row0\">\n",
" id\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col0\" class=\"data row0 col0\">\n",
" int32\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col1\" class=\"data row0 col1\">\n",
" 417939\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col2\" class=\"data row0 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col3\" class=\"data row0 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col4\" class=\"data row0 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col5\" class=\"data row0 col5\">\n",
" 208970\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col6\" class=\"data row0 col6\">\n",
" 120649\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col7\" class=\"data row0 col7\">\n",
" 1\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col8\" class=\"data row0 col8\">\n",
" 208970\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col9\" class=\"data row0 col9\">\n",
" 417939\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col10\" class=\"data row0 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow0_col11\" class=\"data row0 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row1\">\n",
" MS\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col0\" class=\"data row1 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col1\" class=\"data row1 col1\">\n",
" 417939\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col2\" class=\"data row1 col2\">\n",
" 28\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col3\" class=\"data row1 col3\">\n",
" DE\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col4\" class=\"data row1 col4\">\n",
" 69949\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col5\" class=\"data row1 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col6\" class=\"data row1 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col7\" class=\"data row1 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col8\" class=\"data row1 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col9\" class=\"data row1 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col10\" class=\"data row1 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow1_col11\" class=\"data row1 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row2\">\n",
" MP\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col0\" class=\"data row2 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col1\" class=\"data row2 col1\">\n",
" 417939\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col2\" class=\"data row2 col2\">\n",
" 14\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col3\" class=\"data row2 col3\">\n",
" VW GROUP PC\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col4\" class=\"data row2 col4\">\n",
" 128415\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col5\" class=\"data row2 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col6\" class=\"data row2 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col7\" class=\"data row2 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col8\" class=\"data row2 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col9\" class=\"data row2 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col10\" class=\"data row2 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow2_col11\" class=\"data row2 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row3\">\n",
" Mh\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col0\" class=\"data row3 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col1\" class=\"data row3 col1\">\n",
" 417939\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col2\" class=\"data row3 col2\">\n",
" 106\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col3\" class=\"data row3 col3\">\n",
" VOLKSWAGEN\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col4\" class=\"data row3 col4\">\n",
" 53751\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col5\" class=\"data row3 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col6\" class=\"data row3 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col7\" class=\"data row3 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col8\" class=\"data row3 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col9\" class=\"data row3 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col10\" class=\"data row3 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow3_col11\" class=\"data row3 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row4\">\n",
" MAN\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col0\" class=\"data row4 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col1\" class=\"data row4 col1\">\n",
" 417939\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col2\" class=\"data row4 col2\">\n",
" 108\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col3\" class=\"data row4 col3\">\n",
" VOLKSWAGEN AG\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col4\" class=\"data row4 col4\">\n",
" 53751\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col5\" class=\"data row4 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col6\" class=\"data row4 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col7\" class=\"data row4 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col8\" class=\"data row4 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col9\" class=\"data row4 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col10\" class=\"data row4 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow4_col11\" class=\"data row4 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row5\">\n",
" MMS\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col0\" class=\"data row5 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col1\" class=\"data row5 col1\">\n",
" 378739\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col2\" class=\"data row5 col2\">\n",
" 732\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col3\" class=\"data row5 col3\">\n",
" VOLKSWAGEN AG\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col4\" class=\"data row5 col4\">\n",
" 29716\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col5\" class=\"data row5 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col6\" class=\"data row5 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col7\" class=\"data row5 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col8\" class=\"data row5 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col9\" class=\"data row5 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col10\" class=\"data row5 col10\">\n",
" 39200\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow5_col11\" class=\"data row5 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row6\">\n",
" TAN\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col0\" class=\"data row6 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col1\" class=\"data row6 col1\">\n",
" 394600\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col2\" class=\"data row6 col2\">\n",
" 10840\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col3\" class=\"data row6 col3\">\n",
" e1*2001/116*0430*33\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col4\" class=\"data row6 col4\">\n",
" 2007\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col5\" class=\"data row6 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col6\" class=\"data row6 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col7\" class=\"data row6 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col8\" class=\"data row6 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col9\" class=\"data row6 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col10\" class=\"data row6 col10\">\n",
" 23339\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow6_col11\" class=\"data row6 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row7\">\n",
" T\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col0\" class=\"data row7 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col1\" class=\"data row7 col1\">\n",
" 413287\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col2\" class=\"data row7 col2\">\n",
" 3201\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col3\" class=\"data row7 col3\">\n",
" B8\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col4\" class=\"data row7 col4\">\n",
" 12432\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col5\" class=\"data row7 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col6\" class=\"data row7 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col7\" class=\"data row7 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col8\" class=\"data row7 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col9\" class=\"data row7 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col10\" class=\"data row7 col10\">\n",
" 4652\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow7_col11\" class=\"data row7 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row8\">\n",
" Va\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col0\" class=\"data row8 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col1\" class=\"data row8 col1\">\n",
" 402050\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col2\" class=\"data row8 col2\">\n",
" 13093\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col3\" class=\"data row8 col3\">\n",
" A\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col4\" class=\"data row8 col4\">\n",
" 3538\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col5\" class=\"data row8 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col6\" class=\"data row8 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col7\" class=\"data row8 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col8\" class=\"data row8 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col9\" class=\"data row8 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col10\" class=\"data row8 col10\">\n",
" 15889\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow8_col11\" class=\"data row8 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row9\">\n",
" Ve\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col0\" class=\"data row9 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col1\" class=\"data row9 col1\">\n",
" 394472\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col2\" class=\"data row9 col2\">\n",
" 25717\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col3\" class=\"data row9 col3\">\n",
" -\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col4\" class=\"data row9 col4\">\n",
" 4357\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col5\" class=\"data row9 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col6\" class=\"data row9 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col7\" class=\"data row9 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col8\" class=\"data row9 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col9\" class=\"data row9 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col10\" class=\"data row9 col10\">\n",
" 23467\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow9_col11\" class=\"data row9 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row10\">\n",
" Mk\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col0\" class=\"data row10 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col1\" class=\"data row10 col1\">\n",
" 396612\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col2\" class=\"data row10 col2\">\n",
" 285\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col3\" class=\"data row10 col3\">\n",
" VOLKSWAGEN\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col4\" class=\"data row10 col4\">\n",
" 36820\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col5\" class=\"data row10 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col6\" class=\"data row10 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col7\" class=\"data row10 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col8\" class=\"data row10 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col9\" class=\"data row10 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col10\" class=\"data row10 col10\">\n",
" 21327\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow10_col11\" class=\"data row10 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row11\">\n",
" Cn\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col0\" class=\"data row11 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col1\" class=\"data row11 col1\">\n",
" 416502\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col2\" class=\"data row11 col2\">\n",
" 14981\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col3\" class=\"data row11 col3\">\n",
" GOLF\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col4\" class=\"data row11 col4\">\n",
" 11347\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col5\" class=\"data row11 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col6\" class=\"data row11 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col7\" class=\"data row11 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col8\" class=\"data row11 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col9\" class=\"data row11 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col10\" class=\"data row11 col10\">\n",
" 1437\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow11_col11\" class=\"data row11 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row12\">\n",
" Ct\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col0\" class=\"data row12 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col1\" class=\"data row12 col1\">\n",
" 417936\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col2\" class=\"data row12 col2\">\n",
" 3\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col3\" class=\"data row12 col3\">\n",
" M1\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col4\" class=\"data row12 col4\">\n",
" 410536\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col5\" class=\"data row12 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col6\" class=\"data row12 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col7\" class=\"data row12 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col8\" class=\"data row12 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col9\" class=\"data row12 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col10\" class=\"data row12 col10\">\n",
" 3\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow12_col11\" class=\"data row12 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row13\">\n",
" r\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col0\" class=\"data row13 col0\">\n",
" int32\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col1\" class=\"data row13 col1\">\n",
" 417939\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col2\" class=\"data row13 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col3\" class=\"data row13 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col4\" class=\"data row13 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col5\" class=\"data row13 col5\">\n",
" 30.0288\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col6\" class=\"data row13 col6\">\n",
" 197.818\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col7\" class=\"data row13 col7\">\n",
" 1\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col8\" class=\"data row13 col8\">\n",
" 2\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col9\" class=\"data row13 col9\">\n",
" 23087\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col10\" class=\"data row13 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow13_col11\" class=\"data row13 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row14\">\n",
" e (g/km)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col0\" class=\"data row14 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col1\" class=\"data row14 col1\">\n",
" 416917\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col2\" class=\"data row14 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col3\" class=\"data row14 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col4\" class=\"data row14 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col5\" class=\"data row14 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col6\" class=\"data row14 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col7\" class=\"data row14 col7\">\n",
" 0\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col8\" class=\"data row14 col8\">\n",
" 132\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col9\" class=\"data row14 col9\">\n",
" 598\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col10\" class=\"data row14 col10\">\n",
" 1022\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow14_col11\" class=\"data row14 col11\">\n",
" 1474\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row15\">\n",
" m (kg)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col0\" class=\"data row15 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col1\" class=\"data row15 col1\">\n",
" 417516\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col2\" class=\"data row15 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col3\" class=\"data row15 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col4\" class=\"data row15 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col5\" class=\"data row15 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col6\" class=\"data row15 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col7\" class=\"data row15 col7\">\n",
" 390\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col8\" class=\"data row15 col8\">\n",
" 1505\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col9\" class=\"data row15 col9\">\n",
" 4672\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col10\" class=\"data row15 col10\">\n",
" 423\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow15_col11\" class=\"data row15 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row16\">\n",
" w (mm)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col0\" class=\"data row16 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col1\" class=\"data row16 col1\">\n",
" 395047\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col2\" class=\"data row16 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col3\" class=\"data row16 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col4\" class=\"data row16 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col5\" class=\"data row16 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col6\" class=\"data row16 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col7\" class=\"data row16 col7\">\n",
" 500\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col8\" class=\"data row16 col8\">\n",
" 2684\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col9\" class=\"data row16 col9\">\n",
" 6000\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col10\" class=\"data row16 col10\">\n",
" 22892\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow16_col11\" class=\"data row16 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row17\">\n",
" at1 (mm)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col0\" class=\"data row17 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col1\" class=\"data row17 col1\">\n",
" 393036\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col2\" class=\"data row17 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col3\" class=\"data row17 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col4\" class=\"data row17 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col5\" class=\"data row17 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col6\" class=\"data row17 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col7\" class=\"data row17 col7\">\n",
" 155\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col8\" class=\"data row17 col8\">\n",
" 1554\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col9\" class=\"data row17 col9\">\n",
" 4324\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col10\" class=\"data row17 col10\">\n",
" 24903\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow17_col11\" class=\"data row17 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row18\">\n",
" at2 (mm)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col0\" class=\"data row18 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col1\" class=\"data row18 col1\">\n",
" 378839\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col2\" class=\"data row18 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col3\" class=\"data row18 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col4\" class=\"data row18 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col5\" class=\"data row18 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col6\" class=\"data row18 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col7\" class=\"data row18 col7\">\n",
" 480\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col8\" class=\"data row18 col8\">\n",
" 1551\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col9\" class=\"data row18 col9\">\n",
" 4324\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col10\" class=\"data row18 col10\">\n",
" 39100\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow18_col11\" class=\"data row18 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row19\">\n",
" Ft\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col0\" class=\"data row19 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col1\" class=\"data row19 col1\">\n",
" 417804\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col2\" class=\"data row19 col2\">\n",
" 22\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col3\" class=\"data row19 col3\">\n",
" Diesel\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col4\" class=\"data row19 col4\">\n",
" 226568\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col5\" class=\"data row19 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col6\" class=\"data row19 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col7\" class=\"data row19 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col8\" class=\"data row19 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col9\" class=\"data row19 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col10\" class=\"data row19 col10\">\n",
" 135\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow19_col11\" class=\"data row19 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row20\">\n",
" Fm\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col0\" class=\"data row20 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col1\" class=\"data row20 col1\">\n",
" 412550\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col2\" class=\"data row20 col2\">\n",
" 4\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col3\" class=\"data row20 col3\">\n",
" M\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col4\" class=\"data row20 col4\">\n",
" 407462\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col5\" class=\"data row20 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col6\" class=\"data row20 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col7\" class=\"data row20 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col8\" class=\"data row20 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col9\" class=\"data row20 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col10\" class=\"data row20 col10\">\n",
" 5389\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow20_col11\" class=\"data row20 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row21\">\n",
" ec (cm3)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col0\" class=\"data row21 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col1\" class=\"data row21 col1\">\n",
" 414996\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col2\" class=\"data row21 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col3\" class=\"data row21 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col4\" class=\"data row21 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col5\" class=\"data row21 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col6\" class=\"data row21 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col7\" class=\"data row21 col7\">\n",
" 97\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col8\" class=\"data row21 col8\">\n",
" 1798\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col9\" class=\"data row21 col9\">\n",
" 8384\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col10\" class=\"data row21 col10\">\n",
" 2943\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow21_col11\" class=\"data row21 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row22\">\n",
" ep (KW)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col0\" class=\"data row22 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col1\" class=\"data row22 col1\">\n",
" 329174\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col2\" class=\"data row22 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col3\" class=\"data row22 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col4\" class=\"data row22 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col5\" class=\"data row22 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col6\" class=\"data row22 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col7\" class=\"data row22 col7\">\n",
" 1\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col8\" class=\"data row22 col8\">\n",
" 103\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col9\" class=\"data row22 col9\">\n",
" 1770\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col10\" class=\"data row22 col10\">\n",
" 88765\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow22_col11\" class=\"data row22 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row23\">\n",
" z (Wh/km)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col0\" class=\"data row23 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col1\" class=\"data row23 col1\">\n",
" 1221\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col2\" class=\"data row23 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col3\" class=\"data row23 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col4\" class=\"data row23 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col5\" class=\"data row23 col5\">\n",
" inf\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col6\" class=\"data row23 col6\">\n",
" inf\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col7\" class=\"data row23 col7\">\n",
" 12\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col8\" class=\"data row23 col8\">\n",
" 150\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col9\" class=\"data row23 col9\">\n",
" 635\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col10\" class=\"data row23 col10\">\n",
" 416718\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow23_col11\" class=\"data row23 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row24\">\n",
" IT\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col0\" class=\"data row24 col0\">\n",
" object\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col1\" class=\"data row24 col1\">\n",
" 41\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col2\" class=\"data row24 col2\">\n",
" 7\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col3\" class=\"data row24 col3\">\n",
" e1 3\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col4\" class=\"data row24 col4\">\n",
" 28\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col5\" class=\"data row24 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col6\" class=\"data row24 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col7\" class=\"data row24 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col8\" class=\"data row24 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col9\" class=\"data row24 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col10\" class=\"data row24 col10\">\n",
" 417898\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow24_col11\" class=\"data row24 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58e\" class=\"row_heading level11 row25\">\n",
" Er (g/km)\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col0\" class=\"data row25 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col1\" class=\"data row25 col1\">\n",
" 41\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col2\" class=\"data row25 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col3\" class=\"data row25 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col4\" class=\"data row25 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col5\" class=\"data row25 col5\">\n",
" 1.35547\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col6\" class=\"data row25 col6\">\n",
" 1.01172\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col7\" class=\"data row25 col7\">\n",
" 0\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col8\" class=\"data row25 col8\">\n",
" 1.2002\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col9\" class=\"data row25 col9\">\n",
" 6\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col10\" class=\"data row25 col10\">\n",
" 417898\n",
" \n",
" <td id=\"T_c71bb50a_3e3b_11e6_858d_e09467c5a58erow25_col11\" class=\"data row25 col11\">\n",
" 2\n",
" \n",
" </tr>\n",
" \n",
" </tbody>\n",
" </table>\n",
" "
],
"text/plain": [
"<pandas.core.style.Styler at 0x199a95c33c8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(rawdesc(edf).style.bar(subset=['unique', 'NaNs', 'ZEROs',], color='#d65f5f'))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 15,
"hidden": false,
"row": 98,
"width": 7
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\nAACFQoFffvkFeXl5dX7s7t27P6mYdcYjh4iIiIiIiIiIiIieKgsLC7z88ss1/u6VV17B/v37ce3a\nNSgUChgYGEj/lZWVYf78+Q997BMnTjyNyI+EhXYiIiIiIiIiIiIiko1CoUBQUJD087Jly7Bq1aqH\n3qdRo0bw9fVFeXk53nrrracd8S+x0E5EREREREREREREOqNRo0Z/uU1hYSF2794NAPjjjz+wcOHC\npx3roVhor4F2fiAiIiIiIiIiIiIiql/R0dGIjo6Wfl69ejXWr18PExMT3Lhxo9r2Y8eOrc94NWKh\n/T5RUVGIioqSOwYRERERERERERERAYiNjUVsbCwAYPny5Vi5ciVmzZoFT09PmZP9DwvtRERERERE\nRERERKSzVq9ejVWrVqG8vBwajQYAMHHixAduv2LFCrRp06a+4gEADOr1rxERERERERERERER1ZJK\npUJ8fDzUarVUZP8rp0+ffsqpqmOPdiIiIiIiIiIiIiLSSRYWFpg1axZSU1NhbGyMffv24fLly5g2\nbRo6d+6MioqKKv+ZmprCzs6u3nOy0E5EREREREREREREOsvT0xMeHh7QaDQoLy/H2rVrkZqailu3\nbsHExAShoaEwNzeXNSML7URERERERERERESkM7799lusWbPmodskJycjOTkZALBz507MmzevPqI9\nEOdoJyIiIiIiIiIiIiKdsX///kfa3tfX9yklqT0W2omIiIiIiIiIiIhIZ/j7+z/S9qmpqU8pSe1x\n6hgiIiIiIiIiIiIi0hnjx4/H+PHjpZ83bdqEhIQEGBgY4NKlS9LtBgYGMDExwbvvvitHzCrYo52I\niIiIiIiIiIiIdNagQYOwatUqfPfdd1Vu12g0KCkpwYsvvihTsv9hoZ2IiIiIiIiIiIiI6DGw0E5E\nREREREREREREemHkyJEAAKVSiV69esHPzw/r16+XORXnaCciIiIiIiIiIiIiPaFQKADcm8fd09NT\n5jT/wx7tRERERERERERERESPgYV2IiIiIiIiIiIiIqLHwKljiIiIiIiIiIiIiEhnqVQq5ObmQq1W\n4/fff5c7To1YaCciIiIiIiIiIiIinVRcXIyBAwdWuz0/P1+GNA/GqWOIiIiIiIiIiIiISCdpNBq5\nI9QKe7QTERERERERERERkU6ysLDAmjVrcPbsWZiYmODHH39ESkoKbGxs5I5WBQvtRERERERERERE\nRKSzzp07h+3bt0OtVuP48eNyx6kRC+1EREREREREREREpJOKiorw8ccfV7udc7QTERERERERERER\nEdWCEKLG22fMmIHg4GAEBwdj79699RuqBiy0ExEREREREREREZFOsrCwwOuvvw57e3u0a9euxm02\nbdpUz6mq49QxRERERERERERERKSzhgwZgiFDhgAAli9fjpUrV+LVV19Fu3btUFZWhi5dusickIV2\nIiIiIiIiIiIiItIzLi4u8PT0lDuGhFPHEBERERERERERERE9BhbaiYiIiIiIiIiIiIgeAwvtRERE\nRERERERERESPgXO0ExEREREREREREZFOqqioQFxcHH7//fcqt5eUlMiUqGbs0U5ERERERERERERE\nOkmtVlcrsgNAaWmpDGkejIV2IiIiIiIiIiIiItIrFRUVckeoglPHEBEREREREREREVGNrl27hm3b\ntkEIId0mhJB+ftDtD/tdTducPXsWN27cgEKhgEKhgIHBvT7iGo2mxlzTp0/H9OnTAQBffvklfH19\nH6udj4uFdiIiIiIiIiIiIiKq0bhx43Dnzh25YzzU8uXLWWgnIiIiIiIiIiIiIt30zjvv4JNPPgEA\nqbe5lvbf999e+fe1uc/jFvK9vLwe6/5PAgvtRERERERERERERFSjHj164KeffpJ+PnfuHC5cuFBl\nGpj7/13TlDH3TxtT+bY5c+Y8Vsa8vLzHuv+TwEI7EREREREREREREdVIrVYjJycHAJCdnY2vv/5a\n5kT3xMTEIC4uDgYGBjX2pq9vLLQTERERERHRM8HGxgZ79uyRO0ad5efnyx2BiIiomlGjRunke1R2\ndjYMDQ3ljiFhoZ2IiIiIiIieCfn5+Rg6dKjcMepk7dq1ckcgIiKqkS4W2QHg9u3bckeowkDuAERE\nRERERERERESkm3r06CF3hBpdvXpV7ghVsEc7EREREREREREREdXo008/fep/Izg4+Kn/jaeNhXYi\nIiIiIiIiIiIiqtHVq1exdetWAKi26GhNi5D+1TZPauHSoqKiJ/I4TwoL7URERERERERERERUo+HD\nh8sdoUbNmzeXO0IVnKOdiIiIiIiIiIiIiPTKk+oZ/6Sw0E5EREREREREREREesXe3l7uCFVw6hgi\nIiIiIiIiIiIiqtHu3btRUVEB4On1Iu/du/cj30etVj+FJHXHQjsRERERERE9E2xsbLBnzx65Y9RZ\nfn6+3BGIiIiqUSgUMDLSvTJybm6u3BGq0L1niIiIiIiIiKgO8vPzMXToULlj1MnatWvljkBERKRX\nVCqV3BGqYKGdiIiIiIiIngns0U5ERPT3ERwcLHeEKlhoJyIiIiIiomcCe7QTERE9eUIIlJWVAag+\nR3vln4UQ1e5Xm8euqwsXLtT5vk8DC+1EREREREREREREVKOQkBC5I9QoOztb7ghVsNBORERERERE\nRERERHpn9erVAICBAweiSZMmsmZhoZ2IiIiIiIieCZyjnYiI6O8lPj4eAPDrr79i4cKFsmZhoZ2I\niIiIiIieCZyjnYiI6O/p5ZdfljsCC+1EREREREREREREVLO2bdvq3MKjAGBiYoKdO3fKHUNiIHcA\nIiIiIiIiIiIiItJNxsbGckeokZ2dndwRqmChnYiIiIiIiIiIiIhqdO7cObkj1EjXvgDg1DFERERE\nREREREREVKPvvvsOK1asAAAoFIpq/9f++/6fa7OtgYEBDA0NkZCQ8Mi5KioqHr0xTxEL7URERERE\nRERERERUo9atW+PDDz98qn+jLoX27t27P4UkdcdCOxERERERET0TbGxssGfPHrlj1Fl+fr7cEYiI\niPTGrVu35I5QBQvtRERERERE9EzIz8/H0KFD5Y5RJ2vXrpU7AhERUY1ycnKwZs2aKrcJIQDcm/5F\n++9HVfkx6iIpKQlJSUkAgPfeew99+/at0+M8KSy0ExEREREREREREVGN3n77bRQWFsod46F27tzJ\nQjsRERERERERERER6aaPP/4Ys2fPfqp/4/Lly3W63/z582FgYABnZ+cnnOjRsdBORERERERERERE\nRDXq0qULVq5cCQAoLCzEsGHDUFRUJHOqezp27Ch3BAkL7URERERERERERER/U0II/Pzzzzh06FC1\n24Gq87BfvHhRZ4rsuoaFdiIiIiIiIiIiIqK/qdzcXHz++edyx6iT4OBgAEDv3r3xwQcfyJqFhXYi\nIiIiIiIiIiKivyk7OzuMHDkSP//8c42/z8vLq+dEj65Vq1ZyR2ChnYiIiIiIiIiIiOjvysDAAC+9\n9BJeeumlGn9/8+ZNJCcnQ6PR1PoxK083c//tAKr8TqFQYPHixY+YGjAxMcHOnTsf+X5PCwvtRERE\nRERERERERAQAKCkpwbp163Djxo0HblO5kK4tntdVXe9vb2//WH/3SWOhnYiIiIiIiIiIiIgAAN9/\n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\nAAAA6sJ1112XOkKfdt9994qPaUY7AAAAAAAFGzVqVLKxjznmmPjCF76QbPxVKdoB6oA12ilWPawr\nbF1eILV6+F5a6/ldCwCgsj7ykY8kG3v77bdPNnZfFO0AAAAAABTsV7/6VcHv2WyzzSKfz0cul+v1\ntfK27huZrrpfREQul4u111471l133ZKeS7EU7QB1wM1QKVYt38Avwg3wgOpQy99La/37aETtn4Nr\nAQC1aLPNNosXX3yxoPc899xzJRl7jz32iG222aYkxyoFRTsAAAAAAAU76aST4qSTTup5/t5778XC\nhQsjl8tFQ0NDr5noWZZFlmXR1dW12uOV/4yIXs+7urri5JNPjtdee63X2F/72td6Hp944okxderU\nCpxx/xTtAAAAAAAUJcuyZGX3H/7wB0U7AMVzM9Tq0P1T+lpUDzfwcwM8ILV6+F5a6/ldCwCgspYv\nXx7XX399LF68OLIsG9J7xo0b1zPbvXsN9lX/XHXb4sWLo729PUaNGhVjxoyJ9ddfP4466qgYMWJE\n5HK52HLLLct8poNTtANAiQz1fyoAAACgHlxyySVx9dVXF/SeBQsWDHu8FStWxIoVK2LRokUxYcKE\n2HjjjYd9rFJTtAPUATdDpVi1fAO/CDfAA6pDLX8vrfXvoxG1fw6uBQDUos9//vNxzz33xPz58yPi\n/TXaVzVy5MhoaGiIFStWxKc//eloamrqea17wtqqf3Y/7mv7k08+GXPnzo233npL0Q4AAAAAQO15\n66234s033+x5fuyxx0ZXV1c0NDTEySefvNr+HR0d0dHRERERd9xxR2yxxRY9NzuN+L9Cvb/n3TdI\n7d62aNGisp7fcCnaAeqANdrTsy5vetblBVJzLUjPtQAAymvevHlx2GGHFXWMv/3tb5HP5yMietZj\n777n2crP+3tt9OjR0djYGJtuumlxJ1NiinYAKIFaXy5g5V/dAwAAgL5MmDAhGhsbi/rh8C233NJT\nntcTRTsAAAAAAIMaO3Zsv/cV6erqip133nnQY2RZpmgHAAAAAIDhmjdvXk/RvvJ67AOt077qPhtu\nuGGst956yc6hL4p2AAAAAAAG1dnZGb/61a/i3nvvjYiIv//97wUf44gjjihJllNOOSV23HHHkhyr\nFBTtAAAAAAAM6rnnnut36ZhKq7abiCvaAaAEmpqaorW1NXUMAAAAKJsJEyakjtBj2223TR2hF0U7\n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\nAAAA1AVLxwBA8UaOHJk6wpDMnTs3dYReFO0AQM3PAIwwCxAAAKAUPvnJT/b798MlS5bEQQcdFAsW\nLKhwquqnaAcAanoGYIRZgAAAAJUwduzYuPbaa/t9/dZbb41zzz03crlc5HK5iIjI5XKRz+d79ul+\nbeXXV33+5ptvRldX14BZxowZU+zplJSiHQAAAACAiIjo7OyMO++8MxYuXBhZlvVsz7IssiyLO++8\nM5566qler/Vn0003jebm5l7v7+vxytuyLIsrr7xy0GNvvfXWBZ9bOSnaAQAAAACIiIgrr7wyLr30\n0pIca968eTFv3rySHGtVTz/9dFmOO1yKdgAAAOpCrd9zxP1GAKgGO+20U1xzzTWxcOHC1FEGNHr0\n6NQRelG0AwAAUBdq+Z4j7jcCQLWYOHFiXH/99X2+tmzZsthjjz2KOv4mm2wy6D4vvvjioPsMtoZ7\npSnaAQAAAAAY1BprrFGR3x477bTT4tZbby37OKWkaAcAAAAAICIifvGLX8Tvfve71DEGNW7cuNQR\nelG0A0REU1NTtLa2po5RlFrPH1H751DL+bMsq+k1bSNqf11b6wpTLP8NUax6+P+hWr+e+RwAUA1q\noWSPiNh6661TR+hF0Q4QEW1tbTW/nmet5o+o/XOQP716WNfWusIUy39DFKuW/38oovavZz4HAFSL\n2bNnx/Tp01PHGNTcuXNTR+hF0Q4QZgGm1tTUFBG1PSM8orbz1/oMwIja/xwApGZGe3quZQBUg4kT\nJ/Z7PZ07d24cffTRFU7Ut0MPPTR1hF4U7QBhFmBqbW1tEVH7M9DkT6cePgcAqdXDjPbGxsbUMQCg\n7ixatCjuvffeiHj/h9of/OAH429/+1viVBHz589PHaEXRTsAAAB1weQJACi9Qw45JBYsWJA6xmre\neOON1BF6UbQDAABQFywHCACld8QRR8SZZ56ZOsZqsixLHaGXfOoAAAAAAABUpz322CNaWlqipaUl\ntthii9Rxerz33nupI/RiRjsAAAB1wdIxAFBep59+euy9996pY0RExO233x5HHHFE6hg9FO0AAADU\nBUvHAEDpLVu2LJ566qmepVrOOOOMfvft3mfVZV36WuZloH1mzpwZixYtGnbmFBTtAAAA1AUz2gGg\n9A466KCYP39+6hiryeera1X06koDAAAAAEDVqNYfYr/66qupI/RiRjtA+DXj1JqamiIiorW1NW2Q\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x199aad4b048>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import missingno as msno\n",
"\n",
"msno.matrix(edf,) #sort='ascending',)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 4,
"hidden": false,
"row": 113,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Records missing many key-fields for clustering: 934\n"
]
}
],
"source": [
"n_missing_many = edf.ix[:, [c.TAN, c.model, c.wheelbase, ]].isnull().all(axis=1).sum()\n",
"print('Records missing many key-fields for clustering: %s' % n_missing_many)"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 9,
"hidden": false,
"row": 117,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"### Above we see that ~113k(27%) records are missing 2 important fields:\n",
"- ~88k are missing `'power'`;\n",
"- ~23k are missing `'wheelbase'`;\n",
"- ~23k are missing `'TAN'`;\n",
"- ~21k are missing `'Cn'`(model-name)!\n",
"- 2k registrations miss TAN, model-name & sizing(wheelbase) fields \n",
" and need special treatment when collecting their text-fields.\n",
"\n",
"So the idea is:\n",
"1. to clusterize only those records having with ALL values (cluster algos do not work well with `NaN`), and then \n",
"2. try to classify the remaining records based on the formed clusters by setting \"missing\" values to AVGs."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 6,
"hidden": false,
"row": 126,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# Filtering and Fixes\n",
"Split this stage in 2 steps:\n",
"1. \"lossless\": removing dead-empty cases and doing corrections guaranteed to be correct.\n",
"2. Update fields and drop invalids using human-derived rules by studying **the \"peeks\" section**, further below."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 29,
"hidden": false,
"row": 132,
"width": 9
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n",
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n",
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n",
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n",
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n",
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n",
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n",
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n",
"D:\\Apps\\WinPython-64bit-3.5.1.4b3\\python-3.5.1.amd64\\lib\\site-packages\\numpy\\lib\\function_base.py:3403: RuntimeWarning: Invalid value encountered in median\n",
" RuntimeWarning)\n"
]
},
{
"data": {
"text/html": [
"\n",
" <style type=\"text/css\" >\n",
" \n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow0_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow0_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow0_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.06784260515603799%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow1_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.09722330248113868%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow1_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow1_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow2_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.04277825309170102%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow2_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow2_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow3_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.4005600062222914%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow3_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow3_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow4_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.40833787042078246%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow4_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow4_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow5_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 2.835031500350004%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow5_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 9.379628854138002%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow5_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow6_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 42.14435715952399%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow6_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.5841778437167235%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow6_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow7_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 12.43680485338726%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow7_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 1.1124804077579296%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow7_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow8_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 50.90612117912421%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow8_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 3.8014333744122326%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow8_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow9_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 100.0%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow9_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.614807547350411%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow9_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow10_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 1.0966788519872444%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow10_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.102717189724691%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow10_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow11_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 58.248424982499806%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow11_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.34314839852115964%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow11_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow12_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow12_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow12_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow13_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow13_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow13_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow14_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow14_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.24384115627131217%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow14_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 100.0%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow15_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow15_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.10050371504803839%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow15_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow16_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow16_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.477213175558454%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow16_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow17_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow17_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 5.958434534990847%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow17_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow18_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow18_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 9.355699398174183%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow18_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow19_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.031111456793964376%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow19_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.03158688187224064%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow19_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow20_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.003888932099245547%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow20_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 1.2888404982112731%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow20_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow21_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow21_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.7035260053362686%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow21_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow22_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow22_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 21.24026370260472%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow22_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow23_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow23_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 99.71763241962694%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow23_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow24_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.015555728396982188%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow24_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 100.0%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow24_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow25_col2 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f nan%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow25_col10 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 100.0%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" #T_44211676_478d_11e6_9f64_82d7e665249drow25_col11 {\n",
" \n",
" width: 10em;\n",
" \n",
" height: 80%;\n",
" \n",
" background: linear-gradient(90deg,#d65f5f 0.13568521031207598%, transparent 0%);\n",
" \n",
" }\n",
" \n",
" </style>\n",
"\n",
" <table id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" None>\n",
" \n",
"\n",
" <thead>\n",
" \n",
" <tr>\n",
" \n",
" <th class=\"blank\">\n",
" \n",
" <th class=\"col_heading level0 col0\">TYPEs\n",
" \n",
" <th class=\"col_heading level0 col1\">count\n",
" \n",
" <th class=\"col_heading level0 col2\">unique\n",
" \n",
" <th class=\"col_heading level0 col3\">top\n",
" \n",
" <th class=\"col_heading level0 col4\">freq\n",
" \n",
" <th class=\"col_heading level0 col5\">mean\n",
" \n",
" <th class=\"col_heading level0 col6\">std\n",
" \n",
" <th class=\"col_heading level0 col7\">min\n",
" \n",
" <th class=\"col_heading level0 col8\">50%\n",
" \n",
" <th class=\"col_heading level0 col9\">max\n",
" \n",
" <th class=\"col_heading level0 col10\">NaNs\n",
" \n",
" <th class=\"col_heading level0 col11\">ZEROs\n",
" \n",
" </tr>\n",
" \n",
" </thead>\n",
" <tbody>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row0\">\n",
" id\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col0\" class=\"data row0 col0\">\n",
" int64\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col1\" class=\"data row0 col1\">\n",
" 417936\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col2\" class=\"data row0 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col3\" class=\"data row0 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col4\" class=\"data row0 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col5\" class=\"data row0 col5\">\n",
" 208969\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col6\" class=\"data row0 col6\">\n",
" 120649\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col7\" class=\"data row0 col7\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col8\" class=\"data row0 col8\">\n",
" 208970\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col9\" class=\"data row0 col9\">\n",
" 417938\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col10\" class=\"data row0 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow0_col11\" class=\"data row0 col11\">\n",
" 1\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row1\">\n",
" MS\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col0\" class=\"data row1 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col1\" class=\"data row1 col1\">\n",
" 417936\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col2\" class=\"data row1 col2\">\n",
" 28\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col3\" class=\"data row1 col3\">\n",
" DE\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col4\" class=\"data row1 col4\">\n",
" 69949\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col5\" class=\"data row1 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col6\" class=\"data row1 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col7\" class=\"data row1 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col8\" class=\"data row1 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col9\" class=\"data row1 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col10\" class=\"data row1 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow1_col11\" class=\"data row1 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row2\">\n",
" MP\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col0\" class=\"data row2 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col1\" class=\"data row2 col1\">\n",
" 417936\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col2\" class=\"data row2 col2\">\n",
" 14\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col3\" class=\"data row2 col3\">\n",
" VW GROUP PC\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col4\" class=\"data row2 col4\">\n",
" 128415\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col5\" class=\"data row2 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col6\" class=\"data row2 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col7\" class=\"data row2 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col8\" class=\"data row2 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col9\" class=\"data row2 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col10\" class=\"data row2 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow2_col11\" class=\"data row2 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row3\">\n",
" Mh\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col0\" class=\"data row3 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col1\" class=\"data row3 col1\">\n",
" 417936\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col2\" class=\"data row3 col2\">\n",
" 106\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col3\" class=\"data row3 col3\">\n",
" VOLKSWAGEN\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col4\" class=\"data row3 col4\">\n",
" 53751\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col5\" class=\"data row3 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col6\" class=\"data row3 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col7\" class=\"data row3 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col8\" class=\"data row3 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col9\" class=\"data row3 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col10\" class=\"data row3 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow3_col11\" class=\"data row3 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row4\">\n",
" MAN\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col0\" class=\"data row4 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col1\" class=\"data row4 col1\">\n",
" 417936\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col2\" class=\"data row4 col2\">\n",
" 108\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col3\" class=\"data row4 col3\">\n",
" VOLKSWAGEN AG\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col4\" class=\"data row4 col4\">\n",
" 53751\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col5\" class=\"data row4 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col6\" class=\"data row4 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col7\" class=\"data row4 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col8\" class=\"data row4 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col9\" class=\"data row4 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col10\" class=\"data row4 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow4_col11\" class=\"data row4 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row5\">\n",
" MMS\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col0\" class=\"data row5 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col1\" class=\"data row5 col1\">\n",
" 378739\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col2\" class=\"data row5 col2\">\n",
" 732\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col3\" class=\"data row5 col3\">\n",
" VOLKSWAGEN AG\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col4\" class=\"data row5 col4\">\n",
" 29716\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col5\" class=\"data row5 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col6\" class=\"data row5 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col7\" class=\"data row5 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col8\" class=\"data row5 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col9\" class=\"data row5 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col10\" class=\"data row5 col10\">\n",
" 39197\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow5_col11\" class=\"data row5 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row6\">\n",
" TAN\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col0\" class=\"data row6 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col1\" class=\"data row6 col1\">\n",
" 394600\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col2\" class=\"data row6 col2\">\n",
" 10840\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col3\" class=\"data row6 col3\">\n",
" e1*2001/116*0430*33\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col4\" class=\"data row6 col4\">\n",
" 2007\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col5\" class=\"data row6 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col6\" class=\"data row6 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col7\" class=\"data row6 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col8\" class=\"data row6 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col9\" class=\"data row6 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col10\" class=\"data row6 col10\">\n",
" 23336\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow6_col11\" class=\"data row6 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row7\">\n",
" T\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col0\" class=\"data row7 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col1\" class=\"data row7 col1\">\n",
" 413287\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col2\" class=\"data row7 col2\">\n",
" 3201\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col3\" class=\"data row7 col3\">\n",
" B8\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col4\" class=\"data row7 col4\">\n",
" 12432\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col5\" class=\"data row7 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col6\" class=\"data row7 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col7\" class=\"data row7 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col8\" class=\"data row7 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col9\" class=\"data row7 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col10\" class=\"data row7 col10\">\n",
" 4649\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow7_col11\" class=\"data row7 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row8\">\n",
" Va\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col0\" class=\"data row8 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col1\" class=\"data row8 col1\">\n",
" 402050\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col2\" class=\"data row8 col2\">\n",
" 13093\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col3\" class=\"data row8 col3\">\n",
" A\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col4\" class=\"data row8 col4\">\n",
" 3538\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col5\" class=\"data row8 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col6\" class=\"data row8 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col7\" class=\"data row8 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col8\" class=\"data row8 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col9\" class=\"data row8 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col10\" class=\"data row8 col10\">\n",
" 15886\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow8_col11\" class=\"data row8 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row9\">\n",
" Ve\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col0\" class=\"data row9 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col1\" class=\"data row9 col1\">\n",
" 394472\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col2\" class=\"data row9 col2\">\n",
" 25717\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col3\" class=\"data row9 col3\">\n",
" -\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col4\" class=\"data row9 col4\">\n",
" 4357\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col5\" class=\"data row9 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col6\" class=\"data row9 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col7\" class=\"data row9 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col8\" class=\"data row9 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col9\" class=\"data row9 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col10\" class=\"data row9 col10\">\n",
" 23464\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow9_col11\" class=\"data row9 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row10\">\n",
" Mk\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col0\" class=\"data row10 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col1\" class=\"data row10 col1\">\n",
" 396612\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col2\" class=\"data row10 col2\">\n",
" 285\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col3\" class=\"data row10 col3\">\n",
" VOLKSWAGEN\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col4\" class=\"data row10 col4\">\n",
" 36820\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col5\" class=\"data row10 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col6\" class=\"data row10 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col7\" class=\"data row10 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col8\" class=\"data row10 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col9\" class=\"data row10 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col10\" class=\"data row10 col10\">\n",
" 21324\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow10_col11\" class=\"data row10 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row11\">\n",
" Cn\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col0\" class=\"data row11 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col1\" class=\"data row11 col1\">\n",
" 416502\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col2\" class=\"data row11 col2\">\n",
" 14981\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col3\" class=\"data row11 col3\">\n",
" GOLF\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col4\" class=\"data row11 col4\">\n",
" 11347\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col5\" class=\"data row11 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col6\" class=\"data row11 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col7\" class=\"data row11 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col8\" class=\"data row11 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col9\" class=\"data row11 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col10\" class=\"data row11 col10\">\n",
" 1434\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow11_col11\" class=\"data row11 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row12\">\n",
" Ct\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col0\" class=\"data row12 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col1\" class=\"data row12 col1\">\n",
" 417936\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col2\" class=\"data row12 col2\">\n",
" 3\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col3\" class=\"data row12 col3\">\n",
" M1\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col4\" class=\"data row12 col4\">\n",
" 410536\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col5\" class=\"data row12 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col6\" class=\"data row12 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col7\" class=\"data row12 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col8\" class=\"data row12 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col9\" class=\"data row12 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col10\" class=\"data row12 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow12_col11\" class=\"data row12 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row13\">\n",
" r\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col0\" class=\"data row13 col0\">\n",
" int32\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col1\" class=\"data row13 col1\">\n",
" 417936\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col2\" class=\"data row13 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col3\" class=\"data row13 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col4\" class=\"data row13 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col5\" class=\"data row13 col5\">\n",
" 30.028\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col6\" class=\"data row13 col6\">\n",
" 197.818\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col7\" class=\"data row13 col7\">\n",
" 1\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col8\" class=\"data row13 col8\">\n",
" 2\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col9\" class=\"data row13 col9\">\n",
" 23087\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col10\" class=\"data row13 col10\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow13_col11\" class=\"data row13 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row14\">\n",
" e (g/km)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col0\" class=\"data row14 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col1\" class=\"data row14 col1\">\n",
" 416917\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col2\" class=\"data row14 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col3\" class=\"data row14 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col4\" class=\"data row14 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col5\" class=\"data row14 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col6\" class=\"data row14 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col7\" class=\"data row14 col7\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col8\" class=\"data row14 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col9\" class=\"data row14 col9\">\n",
" 598\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col10\" class=\"data row14 col10\">\n",
" 1019\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow14_col11\" class=\"data row14 col11\">\n",
" 1474\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row15\">\n",
" m (kg)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col0\" class=\"data row15 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col1\" class=\"data row15 col1\">\n",
" 417516\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col2\" class=\"data row15 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col3\" class=\"data row15 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col4\" class=\"data row15 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col5\" class=\"data row15 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col6\" class=\"data row15 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col7\" class=\"data row15 col7\">\n",
" 390\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col8\" class=\"data row15 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col9\" class=\"data row15 col9\">\n",
" 4672\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col10\" class=\"data row15 col10\">\n",
" 420\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow15_col11\" class=\"data row15 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row16\">\n",
" w (mm)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col0\" class=\"data row16 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col1\" class=\"data row16 col1\">\n",
" 395047\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col2\" class=\"data row16 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col3\" class=\"data row16 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col4\" class=\"data row16 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col5\" class=\"data row16 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col6\" class=\"data row16 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col7\" class=\"data row16 col7\">\n",
" 500\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col8\" class=\"data row16 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col9\" class=\"data row16 col9\">\n",
" 6000\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col10\" class=\"data row16 col10\">\n",
" 22889\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow16_col11\" class=\"data row16 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row17\">\n",
" at1 (mm)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col0\" class=\"data row17 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col1\" class=\"data row17 col1\">\n",
" 393036\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col2\" class=\"data row17 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col3\" class=\"data row17 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col4\" class=\"data row17 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col5\" class=\"data row17 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col6\" class=\"data row17 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col7\" class=\"data row17 col7\">\n",
" 155\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col8\" class=\"data row17 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col9\" class=\"data row17 col9\">\n",
" 4324\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col10\" class=\"data row17 col10\">\n",
" 24900\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow17_col11\" class=\"data row17 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row18\">\n",
" at2 (mm)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col0\" class=\"data row18 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col1\" class=\"data row18 col1\">\n",
" 378839\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col2\" class=\"data row18 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col3\" class=\"data row18 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col4\" class=\"data row18 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col5\" class=\"data row18 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col6\" class=\"data row18 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col7\" class=\"data row18 col7\">\n",
" 480\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col8\" class=\"data row18 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col9\" class=\"data row18 col9\">\n",
" 4324\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col10\" class=\"data row18 col10\">\n",
" 39097\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow18_col11\" class=\"data row18 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row19\">\n",
" Ft\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col0\" class=\"data row19 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col1\" class=\"data row19 col1\">\n",
" 417804\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col2\" class=\"data row19 col2\">\n",
" 11\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col3\" class=\"data row19 col3\">\n",
" diesel\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col4\" class=\"data row19 col4\">\n",
" 233825\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col5\" class=\"data row19 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col6\" class=\"data row19 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col7\" class=\"data row19 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col8\" class=\"data row19 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col9\" class=\"data row19 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col10\" class=\"data row19 col10\">\n",
" 132\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow19_col11\" class=\"data row19 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row20\">\n",
" Fm\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col0\" class=\"data row20 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col1\" class=\"data row20 col1\">\n",
" 412550\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col2\" class=\"data row20 col2\">\n",
" 4\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col3\" class=\"data row20 col3\">\n",
" M\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col4\" class=\"data row20 col4\">\n",
" 407462\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col5\" class=\"data row20 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col6\" class=\"data row20 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col7\" class=\"data row20 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col8\" class=\"data row20 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col9\" class=\"data row20 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col10\" class=\"data row20 col10\">\n",
" 5386\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow20_col11\" class=\"data row20 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row21\">\n",
" ec (cm3)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col0\" class=\"data row21 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col1\" class=\"data row21 col1\">\n",
" 414996\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col2\" class=\"data row21 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col3\" class=\"data row21 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col4\" class=\"data row21 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col5\" class=\"data row21 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col6\" class=\"data row21 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col7\" class=\"data row21 col7\">\n",
" 97\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col8\" class=\"data row21 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col9\" class=\"data row21 col9\">\n",
" 8384\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col10\" class=\"data row21 col10\">\n",
" 2940\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow21_col11\" class=\"data row21 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row22\">\n",
" ep (KW)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col0\" class=\"data row22 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col1\" class=\"data row22 col1\">\n",
" 329174\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col2\" class=\"data row22 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col3\" class=\"data row22 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col4\" class=\"data row22 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col5\" class=\"data row22 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col6\" class=\"data row22 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col7\" class=\"data row22 col7\">\n",
" 1\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col8\" class=\"data row22 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col9\" class=\"data row22 col9\">\n",
" 1770\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col10\" class=\"data row22 col10\">\n",
" 88762\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow22_col11\" class=\"data row22 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row23\">\n",
" z (Wh/km)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col0\" class=\"data row23 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col1\" class=\"data row23 col1\">\n",
" 1221\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col2\" class=\"data row23 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col3\" class=\"data row23 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col4\" class=\"data row23 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col5\" class=\"data row23 col5\">\n",
" inf\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col6\" class=\"data row23 col6\">\n",
" inf\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col7\" class=\"data row23 col7\">\n",
" 12\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col8\" class=\"data row23 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col9\" class=\"data row23 col9\">\n",
" 635\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col10\" class=\"data row23 col10\">\n",
" 416715\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow23_col11\" class=\"data row23 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row24\">\n",
" IT\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col0\" class=\"data row24 col0\">\n",
" object\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col1\" class=\"data row24 col1\">\n",
" 41\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col2\" class=\"data row24 col2\">\n",
" 7\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col3\" class=\"data row24 col3\">\n",
" e1 3\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col4\" class=\"data row24 col4\">\n",
" 28\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col5\" class=\"data row24 col5\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col6\" class=\"data row24 col6\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col7\" class=\"data row24 col7\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col8\" class=\"data row24 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col9\" class=\"data row24 col9\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col10\" class=\"data row24 col10\">\n",
" 417895\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow24_col11\" class=\"data row24 col11\">\n",
" 0\n",
" \n",
" </tr>\n",
" \n",
" <tr>\n",
" \n",
" <th id=\"T_44211676_478d_11e6_9f64_82d7e665249d\" class=\"row_heading level11 row25\">\n",
" Er (g/km)\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col0\" class=\"data row25 col0\">\n",
" float16\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col1\" class=\"data row25 col1\">\n",
" 41\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col2\" class=\"data row25 col2\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col3\" class=\"data row25 col3\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col4\" class=\"data row25 col4\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col5\" class=\"data row25 col5\">\n",
" 1.35547\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col6\" class=\"data row25 col6\">\n",
" 1.01172\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col7\" class=\"data row25 col7\">\n",
" 0\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col8\" class=\"data row25 col8\">\n",
" nan\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col9\" class=\"data row25 col9\">\n",
" 6\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col10\" class=\"data row25 col10\">\n",
" 417895\n",
" \n",
" <td id=\"T_44211676_478d_11e6_9f64_82d7e665249drow25_col11\" class=\"data row25 col11\">\n",
" 2\n",
" \n",
" </tr>\n",
" \n",
" </tbody>\n",
" </table>\n",
" "
],
"text/plain": [
"<pandas.formats.style.Styler at 0x1cd2ffcda90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def _assert_subset(subset, s, assert_equal=False):\n",
" f = lambda: set(subset) == set(s) if assert_equal else set(subset) <= set(s)\n",
" assert f(), 'EXTRA-elements:\\n found: %s\\n limit: %s\\n diff: %s' % (\n",
" sorted(set(subset)), sorted(set(s)), sorted(set(subset) ^ set(s)))\n",
"\n",
"\n",
"def eea_lossless_fixes(df):\n",
" 'Minor (\"lossless\") column-specific modifications.'\n",
" \n",
" df[c.fuel] = df[c.fuel].str.strip().str.lower()\n",
"\n",
" df[c.vid] = df.index # Good when viewing them.\n",
"\n",
" # Drop 3 totally empty records with (68, 4, 378) registrations, \n",
" ## from (FI, FI, RO) respectively, probably military vehicles.\n",
" df = df.dropna(subset=[c.cat, c.model, c.cap, c.m, c.co2, c.p,], axis=0, how='all')\n",
"\n",
" return df.copy()\n",
" \n",
"pedf = eea_lossless_fixes(edf)\n",
"pedf.name = 'pedf'\n",
"display(rawdesc(pedf).style.bar(subset=['unique', 'NaNs', 'ZEROs',], color='#d65f5f'))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 30,
"hidden": false,
"row": 161,
"width": 9
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"eea_fuel_rpl = {\n",
" 'petrol-gas': 'petrol', \n",
" 'petrol-electric': 'petrol', \n",
" 'e85': 'petrol', #'bioethanol', \n",
"\n",
" 'biodiesel': 'diesel', \n",
" 'diesel-electric': 'diesel', \n",
" \n",
" 'ng-biomethane': 'gas', \n",
" 'lpg': 'gas',\n",
"\n",
" 'hydrogen': 'hydrogen',\n",
" \n",
" 'electric': 'electric', \n",
"}\n",
"\n",
"def eea_lossy_fixes(df, fuel_repl):\n",
" '\"Lossy\" fixes.'\n",
" \n",
" ## Replace Czech 'M1G' extra categories: https://en.wikipedia.org/wiki/Vehicle_category#Czech_Republic\n",
" df.ix[:, c.cat] = df.ix[:, c.cat].str.strip().str.upper().str.replace(r'(^\\w\\d)G$', r'\\1')\n",
" _assert_subset(df[c.cat].dropna().unique(), ['M1', 'N1'])\n",
"\n",
" ## After peeking, we can safely set NaN-->0 for all 'electrics'.\n",
" #df = df.copy()\n",
" df.ix[df[c.fuel] == 'electric', c.co2] = 0\n",
" \n",
" \n",
" ## fuel(electic) with fuel-mode(M) without CO2 --> fuel-mode(E).\n",
" df.copy()\n",
" df.ix[~(df[c.co2] > 0) & (df[c.fuel] == 'electric') & (df[c.fmode] == 'M'), c.fmode] = 'E'\n",
" \n",
" df[c.fuel2] = df.ix[:, c.fuel].replace(list(fuel_repl.keys()), list(fuel_repl.values()))\n",
" _assert_subset(df[c.fuel2].dropna().unique(), fuel_repl.values(), assert_equal=True)\n",
"\n",
" return df\n",
" \n",
"qedf = eea_lossy_fixes(pedf, eea_fuel_rpl)\n",
"qedf.name = 'qedf'\n",
"display(rawdesc(qedf).style.bar(subset=['unique', 'NaNs', 'ZEROs',], color='#d65f5f'))"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 191,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# The \"peeks\": investigating problematic conditions\n",
"\n",
"Interactively run queries with \"interesting\" results helping us to make minor corrections on the data, above."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"def build_eea_peeks(no_funcs=False):\n",
" peeks = pd.DataFrame([\n",
" [\"Missing Model\", \"No Model-Name or just 1 character.\", \n",
" lambda df: df.ix[:, c.model].isnull() | (df.ix[:, c.model].str.len() <=1)],\n",
" [\"Missing Fuel\", \"No fuel\", \n",
" lambda df: df.ix[:, c.fuel].isnull()],\n",
" [\"Missing nums-1\", \"Missing some key-fields for clustering (model, wheelbase)\", \n",
" lambda df: df.ix[:, [c.model, c.wheelbase, ]].isnull().all(axis=1)],\n",
" [\"Missing nums-2\", \"Missing ≥3 numeric key-fields for clustering (mass, capacity, wheelbase, P, co2)\", \n",
" lambda df: df.ix[:, [c.m, c.wheelbase, c.cap, c.p, c.co2]].isnull().sum(axis=1) > 3],\n",
" [\"Missing nums-3\", \"Missing ≥4 numeric key-fields for clustering (mass, capacity, wheelbase, P, co2)\", \n",
" lambda df: df.ix[:, [c.m, c.wheelbase, c.cap, c.p, c.co2]].isnull().sum(axis=1) > 4],\n",
" [\"Missing a lot-1\", \"Missing ≥3 key-fields for clustering (mass, capacity, wheelbase, P, co2, fuel)\", \n",
" lambda df: df.ix[:, [c.m, c.wheelbase, c.cap, c.p, c.co2, c.fuel]].isnull().sum(axis=1) > 4],\n",
" [\"Missing a lot-2\", \"Missing ≥4 key-fields for clustering (mass, capacity, wheelbase, P, co2, fuel)\", \n",
" lambda df: df.ix[:, [c.m, c.wheelbase, c.cap, c.p, c.co2, c.fuel]].isnull().sum(axis=1) > 4],\n",
" [\"Missing text\", \"Missing model & fuel\", \n",
" lambda df: df.ix[:, [c.model, c.fuel]].isnull().all(axis=1)],\n",
" [\"Missing All\", \"Missing all key-fields (TAN, model, fuel, wheelbase, capacity, mass, P, co2)\", \n",
" lambda df: df.ix[:, [c.TAN, c.model, c.fuel, c.wheelbase, c.m, c.cap, c.co2, c.p]].isnull().all(axis=1)],\n",
" [\"BadCats\", \"Category pattern not like: ^[A-Z][0-9]$\",\n",
" lambda df: ~df[c.cat].str.match('^[A-Z][0-9]$').fillna(False)], # 3 NaN\n",
" [\"Fuel-EV missmatch-1\", \"Declared fuel(electric) but not Fuel-mode(E).\",\n",
" lambda df: (df[c.fuel] == 'electric') & (df[c.fmode] != 'E')], # None\n",
" [\"Fuel-EV missmatch-2\", \"Not declared fuel(electric) but Fuel-mode(E).\",\n",
" lambda df: (df[c.fuel] != 'electric') & (df[c.fmode] == 'E')], # None\n",
" [\"Fuel-EV missmatch-3\", \"Declared fuel(electric), no CO2 (NaN or 0), but not Fuel-mode(E).\",\n",
" lambda df: ~(df[c.co2] > 0) & (df[c.fuel] == 'electric') & (df[c.fmode] != 'E')], # None\n",
" [\"Smog EV\", \"fuel(electric) producing CO2!\",\n",
" lambda df: (df[c.fuel] == 'electric') & (df[c.co2] > 0)], # NONE!\n",
" [\"Unpowered EV\", \"fuel(electric) but no electric-consumption(%s) given.\" % c.ev_consum,\n",
" lambda df: (df[c.fuel] == 'electric') & ~(df[c.ev_consum] > 0)], # 603\n",
" [\"ICE-powered EV\", \"fuel(electric) and declare regular-power(ep)\",\n",
" lambda df: (df[c.fuel] == 'electric') & (df[c.p] > 0)], # NONE!\n",
" [\"Prob_EV\", \"No CO2 (NaN or 0) but not declared as fuel(electric).\",\n",
" lambda df: ~(df[c.co2] > 0) & ~(df[c.fuel] == 'electric')], #1025\n",
" [\"Prob_EV2\", \"No CO2, not declared as fuel(electric), nor fuel-mode(E).\",\n",
" lambda df: ~(df[c.co2] > 0) & ~(df[c.fuel] == 'electric') & (df[c.fmode] != 'E')], #1025\n",
" [\"Prob_EV3\", \"No CO2, not declared as pure-electric, but fuel-mode is NaN.\",\n",
" lambda df: ~(df[c.co2] > 0) & ~(df[c.fuel] == 'electric') & df[c.fmode].isnull()], #1025\n",
" [\"WHAT_1\", \"All vehicle ids are missing - just 'AA-IVA'.\",\n",
" lambda df: df[c.doc].str.match('^\\s*AA-IVA AA-IVA\\s*$')], #14\n",
"# [\"WHAT_2\", \"Handpicked unrecognizable vehicle-names.\",\n",
"# lambda df: [288694, 388238, 381894, ]],\n",
" ], columns=['Name', 'Description', 'function_'])\n",
"\n",
" \n",
" if no_funcs:\n",
" count_peeks(peeks)\n",
" peeks = peeks.drop('function_', axis=1)\n",
" #display(peeks)\n",
" \n",
" return peeks\n",
"\n",
"df_names = ['edf', 'pedf', 'qedf']\n",
"def select_df(df_index):\n",
" try:\n",
" df = globals()[df_names[df_index]]\n",
" assert isinstance(df, pd.DataFrame), type(df)\n",
" return df\n",
" except KeyError:\n",
" log.error(\"DataFrame(%r) not declared yet!\\n Run all cells.\", df_name)\n",
"\n",
"def count_peeks(peeks):\n",
" for i, f in enumerate(peeks['function_']):\n",
" for df_name in df_names:\n",
" try:\n",
" df = globals()[df_name]\n",
" peeks.ix[i, '# in %s' % df_name] = f(df).fillna(False).sum()\n",
" except:\n",
" pass\n",
"\n",
"## TODO: match_all: when table becomes multi-select capable.\n",
"def eval_peek(df_index=0, peek_index=None, match_all=False):\n",
" if peek_index is not None:\n",
" df = select_df(df_index)\n",
" peeks = build_eea_peeks(no_funcs=False)\n",
" func = peeks.at[peek_index, 'function_']\n",
" df_I = func(df)\n",
" rdf = df.ix[df_I, :]\n",
"\n",
" return rdf"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 19,
"hidden": false,
"row": 195,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"%%html\n",
"<template is=\"dom-bind\" >\n",
" <urth-core-function ref=\"build_eea_peeks\" arg-no_funcs=1 result=\"{{peeks_jdf}}\" auto></urth-core-function>\n",
" <!-- <p> When selecting multiple rows, fetch records matching\n",
" <paper-checkbox checked=\"{{match_all}}\">ALL criteria? (unchecked: ANY)</paper-checkbox></p>\n",
" -->\n",
" <paper-material elevation=\"3\">\n",
" <p>Select a \"peek\" below, and then the 'df' to view records from:\n",
" <urth-viz-table datarows='[[peeks_jdf.data]]' columns='[[peeks_jdf.columns]]' selection-index='{{peeks_sel}}' \n",
" rows-visible=\"10\" ></urth-viz-table>\n",
" <paper-listbox selected=\"{{df_index}}\" >\n",
" <paper-item><code>&nbsp;edf</code>: EEA raw</paper-item>\n",
" <paper-item><code>pedf</code>: EEA minor \"lossless\" corrections</paper-item>\n",
" <paper-item><code>qedf</code>: EEA \"lossy\" corrections\"</paper-item>\n",
" </paper-listbox></p>\n",
" </paper-material elevation>\n",
" <urth-core-function ref=\"eval_peek\" arg-df_index=\"{{df_index}}\" arg-peek_index=\"[[peeks_sel]]\" arg-match_all=\"{{match_all}}\"\n",
" result=\"{{peeked_jdf}}\" auto debug></urth-core-function>\n",
" <paper-material elevation=\"1\">\n",
" <urth-viz-table datarows='[[peeked_jdf.data]]' columns='[[peeked_jdf.columns]]' \n",
" rows-visible=\"17\" style=\"font-size: smaller;\"></urth-viz-table>\n",
" </paper-material elevation>\n",
"</template"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 7,
"hidden": false,
"row": 214,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# Concatenate all text-strings per registration & build the TIDF.\n",
"- It takes < 1 minute to run!\n",
"- The `c.doc` column containing all words from all textual columns per registration.\n",
"- Builds a TIDF **with** or **without** repetitions of words, depending on the `unique_vocabilary` variable. \n",
"- The same applies for the `doc_freqs()` functions with the `unique_terms` variable: \n",
" - Multiply freqs by #-of-occurences in the txt to rank, and since they add up > 1.0, normalize to max.\n",
"- Read http://scikit-learn.org/stable/modules/feature_extraction.html#text-feature-extractioz"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 13,
"hidden": false,
"row": 195,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"str_cols = ['Mh', 'MP', 'MAN', 'MMS', 'Mk', c.model, c.fuel, c.fuel2]\n",
"\n",
"unique_vocabilary = True ## Drop duplicates because columns contains repeative infos (e.g.company names).\n",
"add_2gram = True\n",
"\n",
"def merge_strings(df, str_cols=str_cols, unique_vocabilary=unique_vocabilary):\n",
" sdf = df.ix[:, str_cols].fillna('')\n",
" # Interleave one SPACE-column between columns to merge.\n",
" sdf['_s'] = ' '\n",
" str_cols = itt.chain.from_iterable((c, '_s') for c in str_cols)\n",
" df[c.doc] = sdf.ix[:, str_cols].sum(1)\n",
"\n",
" # If model missing, concat 'variant' and 'T', it may contain car-infos.\n",
" no_model_I = df.ix[:, c.model].isnull() | (df.ix[:, c.model].str.len() <=1)\n",
" df.ix[no_model_I, c.doc] += df.ix[no_model_I, c.variant].fillna('') + ' ' + df.ix[no_model_I, c.T].fillna('')\n",
" \n",
" if unique_vocabilary:\n",
" df.ix[no_model_I, c.doc] = df.ix[no_model_I, c.doc].str.lower().apply(lambda s: ' '.join(IndexedSet(s.split())))\n",
" return df\n",
" \n",
"qedf = redf = merge_strings(qedf)\n",
"\n",
"display(redf[c.doc].sample(10))\n",
"\n",
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"\n",
"tfid = TfidfVectorizer(token_pattern=r\"(?u)\\b\\w+\\b\", max_df=0.7,\n",
" ngram_range=(1, 2) if add_2gram else (1, 1))\n",
"docs_tfid = tfid.fit_transform(redf[c.doc])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": false
},
"outputs": [],
"source": [
"from sklearn.metrics.pairwise import cosine_similarity, linear_kernel\n",
"\n",
"_tfid_anal = tfid.build_analyzer()\n",
"unique_terms = True\n",
"def doc_freqs(doc, unique_terms=unique_terms):\n",
" words = _tfid_anal(doc)\n",
" if unique_terms:\n",
" words = IndexedSet(words)\n",
" doc = ' '.join(words)\n",
" a = tfid.transform([doc])\n",
" w_df = pd.DataFrame([(w, tfid.vocabulary_.get(w)) for w in words],\n",
" columns=['word', 'featid']).dropna(axis=0)\n",
" w_i = tuple(w_df.ix[:, 'featid'].values)\n",
" w_df['freq'] = a[0, w_i].toarray().flatten()\n",
" w_df = w_df.groupby('word').sum()\n",
" w_sr = w_df.ix[:, 'freq'].sort_values(ascending=False)\n",
" \n",
" return w_sr / w_sr.max()\n",
"#doc_freqs('BMW AG BAYERISCHE MOTOREN WERKE AG BAYER.MOT.WERKE-BMW BMW BMW I I3 ')\n",
"#doc_freqs('')\n",
"#doc_freqs('BMW VW gfhf sdwwe')[:30]\n",
"\n",
"def reg_ilocs_by_txt(txt, score_thresh=0.1, nbins=40):\n",
" \"\"\" :return: Series(doc-index --> score)\"\"\"\n",
" txt_tfid = tfid.transform([txt])\n",
" docs_similarities = linear_kernel(docs_tfid, txt_tfid).flatten()\n",
" dsr = pd.Series(docs_similarities, name='score')\n",
" dsr = dsr[dsr > 0].sort_values(ascending=False)\n",
" \n",
" hist_y, hist_x = np.histogram(dsr, bins=nbins)\n",
" hist_y = len(dsr) -hist_y.cumsum()\n",
" hist_x = hist_x[1:]\n",
" hist = np.vstack((hist_x, hist_y, [None] * nbins)).T\n",
" thresh_line = [\n",
" [score_thresh, None, hist_y.min()], \n",
" [score_thresh, None, hist_y.max()]]\n",
" hist = np.vstack((hist, thresh_line))\n",
" \n",
" channel('txtsearch').set('hist', hist.tolist())\n",
"\n",
" if score_thresh:\n",
" dsr = dsr.ix[dsr >= score_thresh]\n",
" \n",
" return dsr\n",
"\n",
"from urth.widgets.widget_channels import channel\n",
"\n",
"def regs_by_txt(txt, score_thresh=0.0):\n",
" dsr = reg_ilocs_by_txt(txt, score_thresh=score_thresh)\n",
" df = redf.iloc[dsr.index, :]\n",
" df = pd.concat((df, dsr), axis=1) ## Append scores\n",
" \n",
" channel('txtsearch').set('reslen', df.shape[0])\n",
"\n",
" return df\n",
"\n",
"#a=reg_ilocs_by_txt('prius 1.8')\n",
"# redf.iloc[a.index, -10:].ix[:, c.doc]\n",
"#a=regs_by_txt('prius 1.8')\n",
"a=regs_by_txt('mazda rx') "
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 4,
"hidden": false,
"row": 98,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# Search DB by text"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 37,
"hidden": false,
"row": 221,
"width": 6
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": false
},
"outputs": [],
"source": [
"%%html\n",
"<template is=\"urth-core-bind\" channel='txtsearch'>\n",
" <urth-core-function ref=\"regs_by_txt\" arg-txt=\"[[txt]]\" arg-score_thresh={{thresh}} result='{{jdf}}' auto></urth-core-function>\n",
" <paper-input \n",
" label=\"Search terms:\" \n",
" type='search' value='{{txt}}' \n",
" style='display: inline-block; width: 40em'></paper-input>\n",
" <paper-input \n",
" label=\"Score thresh?:\" placeholder=\"e.g. '0' for all\" \n",
" type='number' min=0.0 max=1 step=0.05 value={{thresh}} \n",
" autoValidate\n",
" error-message=\"Value in (0, ] required!\" required\n",
" style='display: inline-block; width: 8em;' \n",
" ></paper-input>\n",
" <span style='color:blue;'>Matched: <b>{{reslen}}</b> registrations</span>\n",
" <urth-viz-table datarows='[[jdf.data]]' columns='[[jdf.columns]]' rows-visible=\"17\" style=\"font-size: smaller;\"></urth-viz-table>\n",
" <urth-viz-line datarows='{{hist}}' columns='[\"percent\",\"hits 1\", \"threshold\"]'\n",
" selection-info='{{chart_sel}}'\n",
" xlabel=\"score\" ylabel=\"hits\" ></urth-viz-line>\n",
" {{chart_sel.2}}\n",
"</template>"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 14,
"hidden": false,
"row": 258,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# Collapse Identical records to reduce dataset size.\n",
"Assuming that no two dinstinct vehicles have the *exact* same technical data (mass, mass, P, co2, fuel, etc),\n",
"we merge them into a single registration.\n",
"\n",
"**It is slow(!)**, but we need it good-thing(tm) because it **reduces the number of registrations into an order of magnitude**,\n",
"making the dataset more manageable for *clustering*, below.\n",
"\n",
"## NOTE: fields are lost, cannot get them back.\n",
"The only field preserved are those in the gouping, and the `'doc'` synthesized earlier. \n",
"In particular are lost: \n",
"- `'MS'`\n",
"- `'TAN'`\n",
"- `'Ve'`\n",
"- all *axle-sizing* fields (`'a1'`, etc), \n",
"\n",
"and for most of the records,\n",
"- `'T'`,\n",
"- `'Va'` "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"redf = qedf.copy()\n",
"redf['records'] = 1"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 44,
"hidden": false,
"row": 272,
"width": 7
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"def convert_int_cols(df, int_cols):\n",
" df = df.copy()\n",
" df[int_cols] = df[int_cols].astype(np.int16)\n",
" \n",
" return df\n",
"\n",
"def _aggr_cat(sr):\n",
" \"\"\"\n",
" Aggregates a Categorical-column on a group of rows, either:\n",
" - as a single string, or \n",
" - as a tuple of strings (if more Cats exist in the group of rows). \"\"\"\n",
" return sr.iat[0] if sr.nunique() == 1 else tuple(sr.cat.categories)\n",
"\n",
"def _aggr_str(sr):\n",
" ## Keep duplicate terms, group might be skewed to one model.\n",
" return sr.fillna('').str.cat(sep=' ').strip() or np.NaN\n",
"\n",
"def group_identicals(df, group_cols, agg_funcs):\n",
" sum_cols = list(IndexedSet(group_cols + list(agg_funcs)))\n",
" df[c.doc] = df[c.doc].fillna('')\n",
" df = df[sum_cols].groupby(group_cols, as_index=0).agg(agg_funcs)\n",
" \n",
" return df\n",
"\n",
"eea_int_cols = ['capacity', 'power', 'wheelbase', 'mass', 'co2']\n",
"# eea_grp_cols = ['Ct', 'e (g/km)', 'm (kg)', 'w (mm)', 'at1 (mm)', 'at2 (mm)', 'Ft', c.fmode, 'ec (cm3)', 'ep (KW)', 'z (Wh/km)', 'IT', 'Er (g/km)']\n",
"#eea_grp_cols = eea_int_cols + eea_cat_cols\n",
"eea_grp_cols = [c.cat, c.fmode, c.fuel2, c.fuel, c.cap, c.p, c.wheel, c.m, c.co2]\n",
"# eea_grp_cols = list(redf.columns)\n",
"# for col in (c.vid, c.TAN, c.MS, c.nr, c.doc, c.records):\n",
"# eea_grp_cols.remove(col) c.TAN)\n",
"#gedf = drop_NaNs(redf, eea_na_cols)\n",
"#gedf = convert_int_cols(gedf, eea_int_cols)\n",
"\n",
"\n",
"## Prepare aggr-functions for each column.\n",
"#\n",
"eea_agg_funcs = {\n",
" c.doc: _aggr_str,\n",
" 'r':'sum',\n",
" 'records': 'sum',\n",
"}\n",
"## We use grouping-fields either numericals that are known to be correct with high confidence,\n",
"# or textual.\n",
"#\n",
"## It's a bit slow this (~1 minute)!!\n",
"gedf = group_identicals(redf, eea_grp_cols, eea_agg_funcs)\n",
"\n",
"display(qedf.shape, gedf.shape, gedf.sample(min(10, len(gedf))))"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": null,
"height": 5,
"hidden": false,
"row": 324,
"width": null
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## ABOVE ARE THE CANDIDATE REGISTRATIONS TO CLUSTER\n",
"So we managed to brigng down the number of records for clustering, from $\\approx 418k \\rightarrow \\approx 51k$ records, based on common, non-null values for key-fields.\n",
"\n",
"------\n",
"\n",
"------"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 316,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"### Examine below the records \"lost\"\n",
"A lot (~88k) of `'power'` were lost, and another 22k from `'wheelbase'` (but note they may combine to less than their sum)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 9,
"hidden": false,
"row": 195,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"def drop_NaNs(df, na_cols):\n",
" display(\"NaNs: \", df.ix[:, na_cols].isnull().sum())\n",
" null_I = df.ix[:, na_cols].isnull().any(axis=1)\n",
" nan_nrows = null_I.sum()\n",
" print(\"DROPPING %s(%.2f%%) NaN-rows out of %s.\" % \n",
" (nan_nrows, 100 * nan_nrows / df.shape[0], df.shape[0]))\n",
" df = df.dropna(subset=na_cols)\n",
"\n",
" return df\n",
"drop_NaNs(redf, eea_grp_cols);\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 4,
"hidden": false,
"row": 204,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# Clustering"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 4,
"hidden": false,
"row": 208,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"def _as_cat_codes(sr):\n",
" return sr.astype('category').cat.codes\n",
"\n",
"eea_cat_cols = [\n",
" (c.cat, c.cat_code), \n",
" (c.fmode, c.fmode_code), \n",
" (c.fuel, c.fuel_code), \n",
" (c.fuel2, c.fuel2_code),\n",
"]\n",
"def append_categoricals(df, cat_cols):\n",
" for col1, col2 in cat_cols:\n",
" df.ix[:, col2] = _as_cat_codes(redf.ix[:, col1])\n",
"\n",
"append_categoricals(gedf, eea_cat_cols)\n",
"gedf.columns"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"from sklearn.cluster import DBSCAN, Birch, MiniBatchKMeans\n",
"from sklearn.preprocessing import StandardScaler, scale\n",
"from sklearn.feature_selection import VarianceThreshold\n",
"\n",
"txt_cols = [c.cat, c.fmode, c.fuel2, c.fuel]\n",
"num_cols = [c.wheel, c.cap, c.p, c.m, c.co2]\n",
"dist_cols = num_cols + txt_cols\n",
"cluster_nsamples = 10000\n",
"\n",
"def build_cluster_features(df, num_cols, txt_cols, doc_features=None, weights=(1., 1., 0.)):\n",
" assert not df[dist_cols].isnull().any().any(), df[dist_cols].isnull().sum()\n",
" nan_I = df.ix[:, dist_cols].notnull().all(axis=1)\n",
"\n",
" df = df.ix[nan_I, :]\n",
" num_feats = df.ix[:, num_cols]\n",
" txt_feats = pd.concat((pd.get_dummies(df.ix[:, col], sparse=True) for col in txt_cols), axis=1)\n",
" feats = pd.concat( (txt_feats * weights[1], num_feats * weights[0]), axis=1)\n",
" if doc_features is not None and weights[2]:\n",
" doc_features = doc_features[nan_I.values]\n",
" feats = scipy.sparse.hstack((doc_features * weights[2], feats))\n",
" feats = StandardScaler(with_mean=not scipy.sparse.issparse(feats)).fit_transform(feats)\n",
" feats2 = VarianceThreshold().fit_transform(feats)\n",
" log.info(\"Dropped non-interesting features: %s --> %s.\", feats.shape, feats2.shape)\n",
" feats = feats2\n",
" \n",
" return feats\n",
"\n",
"sampdf = gedf.sample(cluster_nsamples, random_state=0)\n",
"\n",
"## Good if features(num + txt): eps=0.2, min_samples=10: ~100 groups\n",
"feats1 = build_cluster_features(sampdf, num_cols=num_cols, txt_cols=txt_cols)\n",
"clust1 = DBSCAN(eps=0.18, min_samples=5).fit(feats1) \n",
"#clust1 = Birch(threshold=0.08, branching_factor=50, n_clusters=250).fit(feats2)\n",
" \n",
"# ## Good. slightly increased STDs.\n",
"feats2 = build_cluster_features(sampdf, num_cols=num_cols, txt_cols=txt_cols[:-1])\n",
"clust2 = DBSCAN(eps=0.18, min_samples=5).fit(feats2)\n",
"\n",
"## Many labels(n_clusters) but x10 bigger STDs.\n",
"# feats2 = feats1\n",
"# clust2 = Birch(threshold=0.08, branching_factor=20, n_clusters=300).fit(feats2)\n",
"\n",
"## BAD(!) if features(num + txt + doc): eps=2, min_samples=10: ~100 groups\n",
"# feats2 = build_cluster_features(sampdf, num_cols=num_cols, txt_cols=txt_cols, doc_features=docs_tfid) \n",
"# clust2 = DBSCAN(eps=2, min_samples=5).fit(feats2)\n",
"\n",
"print('# clusters: %s, %s' % (len(set(clust1.labels_)), len(set(clust2.labels_))))\n",
"sedf1 = sampdf.copy(); sedf1[c.labels] = clust1.labels_; sedf1.name='sedf1'\n",
"sedf2 = sampdf.copy(); sedf2[c.labels] = clust2.labels_; sedf2.name='sedf2'"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## Judge the homogenity of the clusters\n",
"Study (manually re-running twice) the *per-cluster* STDEVs, their IQRs of the key-fields, and \n",
"the number of members per cluster for these cases:\n",
"- Excluding `'doc'` features: 101 clusters, 4.7k outliers, 52 very low variance of per-cluster numeric fields (mass, co2, etc).\n",
"- Excluding `'doc'` features and `'fuel'`: rougly the same as above, slightly increased STDs.\n",
"- Including `'doc'` features: 103 clusters, 5.8k outliers, and per-cluster STDs for numeric fields $ \\approx x5$ above. The number of members per-cluster vary more, which might indicate better grouping for some BIG clusters.\n",
"\n",
"Note that the DBSCAN parameters have been fiddled so that both cases return the *same-number* of clusters.\n",
"\n",
"### Conclusion:\n",
"- Homogenity is better when `'doc'` tfid features are EXCLUDED in the clustering!\n",
"- Still we need to decide on the DBSCAN-params for **how many clusters there should be!**\n",
"- TODO: Read this http://scikit-learn.org/stable/modules/clustering.html#clustering-evaluation\n",
"\n",
"### Study artifacts below\n",
"- The big-blue pies are outliers (unclustered label '-1').\n",
"- The dataframe shows the STDs of the clusters."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 6,
"height": 27,
"hidden": false,
"row": 221,
"width": 6
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": false
},
"outputs": [],
"source": [
"def _desc(df):\n",
" return df.describe().drop(['count', 'std'])\n",
"\n",
"def compare_clusters(dfs, features=None):\n",
" \"\"\"Requires named DFs.\"\"\"\n",
" df1, df2 = dfs\n",
" \n",
" print('# clusters: %s, %s' % (len(df1[c.labels].unique()), len(df2[c.labels].unique())))\n",
" \n",
" ## Collect STDs of clusters.\n",
" cldf = df1.loc[:, [c.labels] + num_cols].groupby(c.labels).describe().loc[0:, :] # Drop -1 label\n",
" a = _desc(cldf.loc[idx[: , 'std'], num_cols])\n",
" cldf = df2.loc[:, [c.labels] + num_cols].groupby(c.labels).describe().loc[0:, :]\n",
" b = _desc(cldf.loc[idx[: , 'std'], num_cols])\n",
"\n",
" stds = concat_levels((a,b), keys=[df1.name, df2.name], axis=1).swaplevel(0, 1, axis=1).sortlevel(axis=1)\n",
" display(stds.style.format('{:.2f}').bar())\n",
"\n",
" ## Plots cluster sizes.\n",
" labels = pd.concat((df1[c.labels].value_counts(), df2[c.labels].value_counts()), keys=[df1.name, df2.name], axis=1)\n",
" labels.plot.box(title='labels', showfliers=False)\n",
" labels.plot.pie(subplots=True, labels=None, legend=False)\n",
" \n",
" ## It takes ~40'' for each metric!\n",
" # And anyway, they are bad estimators for non-convex clusterizers \n",
" # such as DBSCAN.\n",
" if features:\n",
" feats1, feats2 = features\n",
"\n",
" from sklearn.metrics import silhouette_score\n",
" sil1 = silhouette_score(feats1, df1[c.labels].values)\n",
" sil2 = silhouette_score(feats2, df2[c.labels].values) ## Needs ~40''.\n",
" display(pd.Series((sil1, sil2), index=(df1.name, df2.name)))\n",
"\n",
"compare_clusters((sedf1, sedf2))#, (feats1, feats2)) ## Feats take ~2'!"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": false
},
"outputs": [],
"source": [
"import inspect\n",
"from toolz import dicttoolz as dtz\n",
"\n",
"def test():\n",
" import time\n",
" for i in range(1,4):\n",
" channel('cluster').set('progress', i)\n",
" time.sleep(1)\n",
" \n",
"def run_cluster(cluster_fun=None, nsamples=1000, random_state=None,\n",
" num_weight=1., txt_weight=1., doc_weight=0., \n",
" eps=0.02, min_samples=5, # DBSCAN\n",
" threshold=0.08, branching_factor=20, n_clusters=300, # Birch\n",
" # MiniBatchKMeans\n",
" ):\n",
" if cluster_fun is None:\n",
" channel('cluster').set('progress', \"Select algorithm first!\")\n",
" return\n",
" \n",
" sampdf = gedf.sample(nsamples, random_state=random_state or None)\n",
"\n",
" ## Good if features(num + txt): eps=0.2, min_samples=10: ~100 groups\n",
" channel('cluster').set('progress', \"1 of 4: preparing features...\")\n",
" features = build_cluster_features(sampdf, \n",
" num_cols=num_cols, txt_cols=txt_cols, doc_features=docs_tfid, \n",
" weights=(num_weight, txt_weight, doc_weight))\n",
"\n",
" sig = inspect.signature(cluster_fun)\n",
" fun_params = sig.parameters.keys()\n",
" fun_params = dtz.keyfilter(lambda k: k in fun_params, locals())\n",
" channel('cluster').set('progress', \"2 of 4: clustering(%s, %s)...\" % (cluster_fun.__name__, fun_params))\n",
" clust = cluster_fun(**fun_params)\n",
" clust.fit(features)\n",
" cldf = sampdf.copy()\n",
" cldf[c.labels] = clust.labels_; cldf.name='sedf2'\n",
"\n",
" channel('cluster').set('progress', \"3 of 4: SKIP classifying remaining %s samples!\" % (gedf.shape[0] - cldf.shape[0]))\n",
" #rest_samples_df = gedf.loc[gedf.index.difference(cldf.index), :]\n",
" #clust.predict(rest_samples_df)\n",
"\n",
" channel('cluster').set('progress', \"4 of 4: compare results...\")\n",
" display.clear_output()\n",
" compare_clusters((sedf1, cldf))\n",
"\n",
" channel('cluster').set('progress', \"done\")\n",
" \n",
" return cldf\n",
"\n",
"def run_DBSCAN(eps=0.02, min_samples=5,\n",
" nsamples=1000, random_state=None,\n",
" num_weight=1., txt_weight=1., doc_weight=0.):\n",
" run_cluster(cluster_fun=DBSCAN, **locals())\n",
"\n",
"def run_Birch(threshold=0.08, branching_factor=20, n_clusters=300,\n",
" nsamples=1000, random_state=None,\n",
" num_weight=1., txt_weight=1., doc_weight=0.):\n",
" run_cluster(cluster_fun=Birch, **locals())\n",
"\n",
"## TEST IT:\n",
"#run_cluster(DBSCAN)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 7,
"height": 28,
"hidden": false,
"row": 272,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": false
},
"outputs": [],
"source": [
"%%html\n",
"<template is=\"urth-core-bind\" channel='cluster'>\n",
"<!--\n",
" <urth-core-function ref=\"test\">\n",
" <button raised>test Cluster!</button>\n",
" </urth-core-function>\n",
"-->\n",
" <ul>\n",
" <li>\n",
" <paper-input \n",
" label=\"Number of samples (> 10000 may crash memory!)\" \n",
" type='number' min=500 step=500 value={{nsamples}} \n",
" ></paper-input>\n",
" <paper-input \n",
" label=\"RND-seed(or empty)?\" \n",
" type='number' min=0.0 value={{random_state}} \n",
" ></paper-input>\n",
" </li>\n",
" <li>Feature \"weights\":\n",
" <paper-input label=\"Numeric:\" type='number' min=0.0 value={{num_weight}}></paper-input>\n",
" <paper-input label=\"Text (i.e. for 'fuel'):\" type='number' min=0.0 value={{txt_weight}}></paper-input>\n",
" <paper-input label=\"Doc (for Tidf):\" type='number' min=0.0 value={{doc_weight}}></paper-input>\n",
" </li>\n",
" <li>\n",
" <paper-input \n",
" label=\"eps (e.g. 0.02 or 2):\" \n",
" type='number' min=0.0 value={{eps}} \n",
" ></paper-input>\n",
" <paper-input \n",
" label=\"min_samples (e.g. 5 or 10):\" \n",
" type='number' min=2 value={{min_samples}} \n",
" ></paper-input>\n",
" <br>\n",
" <urth-core-function ref=\"run_DBSCAN\" \n",
" arg-nsamples={{nsamples}}\n",
" arg-num_weights={{num_weight}} arg-txt_weights={{txt_weight}} arg-doc_weights={{doc_weight}}\n",
" arg-eps={{eps}} arg-min_samples={{min_samples}}\n",
" result=\"{{clustered}}\">\n",
" <button raised>Cluster:</button><a href=\"http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html\" target='_blank'>DBSCAN</a>\n",
" </urth-core-function>\n",
" </li>\n",
" <li>\n",
" <paper-input \n",
" label=\"threshold (e.g. 0.02 or 2):\" \n",
" type='number' min=0.0 value={{threshold}} \n",
" ></paper-input>\n",
" <paper-input \n",
" label=\"branching_factor (e.g. 50):\" \n",
" type='number' min=2 value={{branching_factor}} \n",
" ></paper-input>\n",
" <paper-input \n",
" label=\"n_clusters (e.g. 200):\" \n",
" type='number' min=2 value={{n_clusters}} \n",
" ></paper-input>\n",
" <br>\n",
" <urth-core-function ref=\"run_Birch\" \n",
" arg-nsamples={{nsamples}}\n",
" arg-num_weights={{num_weight}} arg-txt_weights={{txt_weight}} arg-doc_weights={{doc_weight}}\n",
" arg-threshold={{threshold}} arg-branching_factor={{branching_factor}} arg-n_clusters={{n_clusters}}\n",
" result=\"{{clustered}}\">\n",
" <button raised>Cluster:</button> <a href=\"http://scikit-learn.org/stable/modules/generated/sklearn.cluster.Birch.html\" target='_blank'>Birch</a>\n",
" </urth-core-function>\n",
" </li>\n",
" <li><button raised>TODO:</button><a href=\"http://scikit-learn.org/stable/modules/generated/sklearn.cluster.MiniBatchKMeans.html\" target='_blank'>MiniBatchKMeans</a>\n",
" </li>\n",
" <li>Clustering progress: <span class=\"progress_text\">{{progress}}</span></li>\n",
" </ul>\n",
" <li>Clusters:\n",
" <urth-viz-table datarows='[[clustered.data]]' columns='[[clustered.columns]]' rows-visible=\"17\" \n",
" style=\"font-size: smaller;\" limit=500></urth-viz-table>\n",
" </li>\n",
" <style media=\"screen\" type=\"text/css\">\n",
" paper-input {\n",
" display: inline-block;\n",
" }\n",
" .horizontal-section {\n",
" padding: 0 !important;\n",
" }\n",
" paper-item {\n",
" --paper-item: {\n",
" cursor: pointer;\n",
" };\n",
" }\n",
" .sublist {\n",
" padding-left: 20px;\n",
" padding-right: 20px;\n",
" }\n",
" .progress_text {\n",
" background-color: yellow;\n",
" }\n",
" </script>\n",
"</template>"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 320,
"width": 12
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# TODO: Add back NaN records\n",
"This can be done either using the trained DBSCAN, or the text-classifier (tdif)."
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 4,
"hidden": false,
"row": 208,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"<div style=\"background-color:lightgreen; color:red\" >\n",
"<h3> --- ankostis HAVE CHECKED time SO FAR --- </h3>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"eea_col_renames = {\n",
" 'model': 'eea_model',\n",
" 'w (mm)': 'wheelbase',\n",
" 'ec (cm3)': 'capacity',\n",
" 'ep (KW)': 'power',\n",
" 'e (g/km)': 'co2',\n",
" 'm (kg)': 'mass', # running order mass\n",
"}\n",
"eea_na_cols = ['Ct', 'Cn', 'Ft', 'wheelbase', 'capacity', 'power', 'mass', 'co2']\n",
"eea_fuel_rpl = {\n",
" 'petrol-gas': 'petrol', \n",
" 'petrol-electric': 'petrol', \n",
" 'e85': 'petrol', #'bioethanol', \n",
"\n",
" 'biodiesel': 'diesel', \n",
" 'diesel-electric': 'diesel', \n",
" \n",
" 'ng-biomethane': 'gas', \n",
" 'hydrogen': 'gas',\n",
" 'lpg': 'gas',\n",
" 'electric': 'electric', \n",
"}\n",
"eea_cat_cols = ['fuel', 'drive', 'Ct', c.fmode]\n",
"\n",
"\n",
"def _as_catergories(df, cat_cols):\n",
" return pd.concat( (df.ix[:, col].astype('category') for col in cat_cols), axis=1)\n",
"\n",
"\n",
"def preproc_eea(df, fuel_rpl, cat_cols):\n",
" \"Various column-specific modifications.\"\n",
" \n",
" ## Replace Czech 'M1G' extra categories: https://en.wikipedia.org/wiki/Vehicle_category#Czech_Republic\n",
" df.ix[:, 'Ct'] = df.ix[:, 'Ct'].str.upper().str.replace(r'(^\\w\\d)G$', r'\\1')\n",
" _assert_subset(df['Ct'].dropna().unique(), ['M1', 'N1'])\n",
" \n",
" ## THIS CURRENTLY NEEDS MORE THOUGHT,\n",
" # i.e. apply Christian's corrections from his report: \n",
" # http://publications.jrc.ec.europa.eu/repository/bitstream/JRC97178/ev%20registrations%20report_final%20online.pdf\n",
" # or check 'z (Wh/km)' > 0 \tElectric energy consumption, \n",
" # which for 2014 it brings: z>0 = 1221, 'drive' = 955\n",
" #\n",
" hybrids_I = df.ix[:, 'Ft'].str.lower().str.contains(r'electric|hybrid').fillna(False)\n",
" df.ix[hybrids_I, 'drive'] = 'hybrid'\n",
" df.ix[~hybrids_I, 'drive'] = 'ICE'\n",
" _assert_subset(df['drive'].dropna().unique(), ['hybrid', 'ICE'], assert_equal=True)\n",
" \n",
" ## ALSO THIS NEEDS MORE THOUGHT\n",
" df['fuel'] = df['Ft'].str.lower().replace(fuel_rpl.keys(), fuel_rpl.values())\n",
" _assert_subset(df['fuel'].dropna().unique(), fuel_rpl.values(), assert_equal=True)\n",
" \n",
" #df.ix[:, cat_cols] = _as_catergories(df, cat_cols)\n",
" \n",
" return df\n",
"\n",
"pedf = edf.copy()\n",
"pedf = pedf.rename(columns=eea_col_renames)\n",
"#pedf = drop_NaNs(pedf, na_cols) ## Do it later.\n",
"pedf = preproc_eea(pedf, eea_fuel_rpl, eea_cat_cols)\n",
"\n",
"display(pd.Categorical.describe(pedf['fuel']), pd.Categorical.describe(pedf['drive']))\n",
"print(\"DIFFERENCE in Hybrids: z>0 = %s, 'drive' = %s\" % ((edf['z (Wh/km)'] > 0).sum(), (pedf['drive']=='hybrid').sum()))"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 6,
"height": 4,
"hidden": false,
"row": 248,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"<div style=\"background-color:lightgreen; color:red\" >\n",
"<h3> --- ankostis HAVE CHECKED 2nd time SO FAR --- </h3>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"pedf['Er (g/km)'].dropna().unique()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"# Columns to \"correct\"\n",
"display(pd.Categorical.describe(edf.ix[:, 'Ft'].str.lower()), pd.Categorical.describe(edf.ix[:, c.fmode]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"def report_miss_classified(df, check_cols):\n",
" return df[check_cols].apply(lambda c_sr: c_sr.str.isalnum(), axis=1).fillna(False)\n",
"\n",
"ok_I = report_miss_classified(gedf, check_cols=eea_cat_cols)\n",
"display(len(gedf) - ok_I.sum(), 'Rows to drop: %s' % (~ok_I.all(axis=1)).sum())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"# Columns to \"correct\"\n",
"display(pd.Categorical.describe(edf.ix[:, 'Ft'].str.lower()), pd.Categorical.describe(edf.ix[:, c.fmode]))"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 6,
"height": 4,
"hidden": false,
"row": 252,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"The rows above of the \"grouped\" dataset contain multiple values for the categorical fields.\n",
"\n",
"#### Let's kill them!"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"cedf = gedf.ix[ok_I.all(axis=1), :]\n",
"print(gedf.shape, cedf.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 7,
"height": 4,
"hidden": false,
"row": 300,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"<div style=\"background-color:lightgreen; color:red\" >\n",
"<h3> --- ankostis HAVE CHECKED SO FAR --- </h3>\n",
"</div>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"import join_dbs_ank as vdb\n",
"\n",
"web_fname = 'database_final_2014.csv'\n",
"wdf = vdb.read_web(web_fname)\n",
"#display(wdf.columns)\n",
"display(wdf.head())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"eea_samples = 2e4 # TRY 1e4 on small machines!!!\n",
"\n",
"db = pd.concat([cedf.sample(eea_samples), wdf], axis=0, ignore_index=True)\n",
"db['fuel_code'] = db['fuel'].astype('category').cat.codes"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"def calc_dxd(df):\n",
" from sklearn import preprocessing\n",
" #df = preprocessing.scale(df)\n",
" df = preprocessing.StandardScaler().fit_transform(df)\n",
"\n",
" from sklearn.metrics import pairwise\n",
" return pairwise.euclidean_distances(df)\n",
"\n",
"def cluster(df, dist_cols):\n",
" from sklearn import cluster\n",
"\n",
" dxd = calc_dxd(db[dist_cols])\n",
" dbscan = cluster.DBSCAN(metric=\"precomputed\").fit(dxd)\n",
" df['labels'] = dbscan.labels_\n",
" \n",
" return df, dbscan\n",
"\n",
"dist_cols = ['wheelbase', 'capacity', 'power', 'mass', 'co2', 'fuel_code']\n",
"assert not db[dist_cols].isnull().any().any(), db[dist_cols].isnull().sum()\n",
"df, dbscan = cluster(db, dist_cols)\n",
"print(len(set(dbscan.labels_)))\n",
"\n",
"#df[['labels'] + dist_cols].groupby('labels').describe()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": true
},
"outputs": [],
"source": [
"df[['labels'] + dist_cols].groupby('labels').describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"gdf = df[['labels'] + dist_cols].groupby('labels').mean()\n",
"gdf['label'] = gdf.index"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"from urth.widgets.widget_channels import channel\n",
"labels = df['labels'].unique()\n",
"channel('c1').set(\"labels\", list(labels))\n",
" \n",
"view_cols = ['labels', 'Cn', 'Ct', 'Er (g/km)', c.fmode, 'IT', 'MAN', 'MMS', 'MP', 'MS', 'Mh', \n",
"'Mk', 'T', 'TAN', 'Va', 'Ve', 'at1 (mm)', 'at2 (mm)', 'capacity', 'drive', 'e (g/km)', \n",
"'eea_model', 'fuel', 'id', 'mass', 'power', 'r', 'wheelbase', 'z (Wh/km)',]\n",
"\n",
"def desc_label(label):\n",
" return df.ix[df['labels'] == label, dist_cols].describe()\n",
"\n",
"\n",
"#str_cols = ['MAN', 'Mh', 'Mk', 'eea_model']\n",
"str_cols = ['web_model', 'eea_model']\n",
"\n",
"def word_counts(label=10, limit=50):\n",
" from collections import Counter\n",
" \n",
" l = []\n",
" sdf = df.ix[df['labels'] == label, str_cols]\n",
" for col in sdf.columns:\n",
" l.extend([w for w in sdf[col].str.split() if isinstance(w, list)])\n",
" cntr = Counter(itt.chain.from_iterable(l))\n",
" cntr1 = sorted(cntr.items(), key=lambda i: i[1], reverse=1)[:limit]\n",
" sv = sum(cntr.values())\n",
" cntr2 = [(k, v/sv) for k,v in cntr1]\n",
" \n",
" return dict(cntr2)\n",
"\n",
"#desc_label(1)\n",
"#word_counts(19)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"wdf['web_model']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 10,
"hidden": false,
"row": 0,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": true
},
"outputs": [],
"source": [
"%%html\n",
"<template is=\"urth-core-bind\">\n",
" <urth-core-dataframe ref=\"gdf\" value=\"{{gdf_js}}\" auto></urth-core-dataframe>\n",
" <urth-viz-table datarows='[[gdf_js.data]]' columns='[[gdf_js.columns]]' selection='{{sel}}' \\\n",
" rows-visible=\"10\" ></urth-viz-table>\n",
"</template"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 26,
"hidden": false,
"row": 10,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [],
"source": [
"%%html\n",
"<template is=\"urth-core-bind\">\n",
" <urth-core-function ref=\"word_counts\" arg-label=\"[[sel.5]]\" result=\"{{wfreqs}}\" auto></urth-core-function>\n",
" <urth-core-function ref=\"desc_label\" arg-label=\"[[sel.5]]\" result=\"{{label_jdf}}\" auto></urth-core-function>\n",
" <urth-viz-cloud data='{{wfreqs}}'></urth-viz-cloud>\n",
" <urth-viz-table datarows='[[label_jdf.data]]' columns='[[label_jdf.columns]]' selection='{{sel}}' \n",
" rows-visible=\"10\" ></urth-viz-table>\n",
"\n",
"</template>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": false
}
}
}
},
"scrolled": true
},
"outputs": [],
"source": [
"df[view_cols].groupby('labels').describe()"
]
}
],
"metadata": {
"extensions": {
"jupyter_dashboards": {
"activeView": "grid_default",
"version": 1,
"views": {
"grid_default": {
"cellMargin": 10,
"defaultCellHeight": 20,
"maxColumns": 12,
"name": "grid",
"type": "grid"
},
"report_default": {
"name": "report",
"type": "report"
}
}
}
},
"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.5.1"
},
"widgets": {
"state": {},
"version": "1.1.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment