{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Musterlösung zu Projektaufgabe Deskriptive Statistik und offene Fragen\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Grundlage: Datensatz der San Francisco Public Library, s.a. https://zbmed.github.io/2020-2021-ZK_Data_Librarian_Modul_3/organisation/dataset/"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 1: Wie viele Senioren und Kinder sind Kunden der San Francisco Public Library?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 2: Wie viele Nutzer möchten per Mail informiert werden?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 3: Wie alt sind diese Nutzer durchschnittlich im Vergleich zu Nutzern, die per Post informiert werden möchten?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 4: Wie viele Ausleihen werden im Mittel pro Altersgruppe und pro Jahr getätigt? Ist die Streuung zwischen den Gruppen gleich?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 5: Welche Altersgruppe verlängert im Mittel wie oft?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 6: Wie ist die Verteilung der Altersgruppen im Mission District"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Frage 7: Erklärung von Normalisierung von Kreuztabellen (Kapitel 3 im Skript)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"%matplotlib inline\n",
"sns.set()\n",
"# das was wir brauchen in abgekürzter Form"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(\n",
" \"../data/Library_Usage.csv\",\n",
" na_values=\"none\"\n",
")\n",
"# Einlesen des Datensatzes in das neu definierte DataFrame df mit Überschreibung \n",
"#fehlender Werte"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Patron Type Code
\n",
"
Patron Type Definition
\n",
"
Total Checkouts
\n",
"
Total Renewals
\n",
"
Age Range
\n",
"
Home Library Code
\n",
"
Home Library Definition
\n",
"
Circulation Active Month
\n",
"
Circulation Active Year
\n",
"
Notice Preference Code
\n",
"
Notice Preference Definition
\n",
"
Provided Email Address
\n",
"
Year Patron Registered
\n",
"
Outside of County
\n",
"
Supervisor District
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
0
\n",
"
ADULT
\n",
"
0
\n",
"
0
\n",
"
20 to 24 years
\n",
"
P1
\n",
"
Park
\n",
"
None
\n",
"
None
\n",
"
z
\n",
"
email
\n",
"
True
\n",
"
2014
\n",
"
False
\n",
"
5.0
\n",
"
\n",
"
\n",
"
1
\n",
"
0
\n",
"
ADULT
\n",
"
31
\n",
"
22
\n",
"
25 to 34 years
\n",
"
S7
\n",
"
Sunset
\n",
"
April
\n",
"
2016
\n",
"
z
\n",
"
email
\n",
"
True
\n",
"
2010
\n",
"
False
\n",
"
4.0
\n",
"
\n",
"
\n",
"
2
\n",
"
0
\n",
"
ADULT
\n",
"
0
\n",
"
0
\n",
"
45 to 54 years
\n",
"
P1
\n",
"
Park
\n",
"
None
\n",
"
None
\n",
"
a
\n",
"
print
\n",
"
False
\n",
"
2016
\n",
"
True
\n",
"
NaN
\n",
"
\n",
"
\n",
"
3
\n",
"
0
\n",
"
ADULT
\n",
"
0
\n",
"
0
\n",
"
25 to 34 years
\n",
"
X
\n",
"
Main Library
\n",
"
None
\n",
"
None
\n",
"
z
\n",
"
email
\n",
"
True
\n",
"
2015
\n",
"
False
\n",
"
3.0
\n",
"
\n",
"
\n",
"
4
\n",
"
0
\n",
"
ADULT
\n",
"
126
\n",
"
11
\n",
"
45 to 54 years
\n",
"
M2
\n",
"
Marina
\n",
"
January
\n",
"
2016
\n",
"
z
\n",
"
email
\n",
"
True
\n",
"
2003
\n",
"
False
\n",
"
2.0
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Patron Type Code Patron Type Definition Total Checkouts Total Renewals \\\n",
"0 0 ADULT 0 0 \n",
"1 0 ADULT 31 22 \n",
"2 0 ADULT 0 0 \n",
"3 0 ADULT 0 0 \n",
"4 0 ADULT 126 11 \n",
"\n",
" Age Range Home Library Code Home Library Definition \\\n",
"0 20 to 24 years P1 Park \n",
"1 25 to 34 years S7 Sunset \n",
"2 45 to 54 years P1 Park \n",
"3 25 to 34 years X Main Library \n",
"4 45 to 54 years M2 Marina \n",
"\n",
" Circulation Active Month Circulation Active Year Notice Preference Code \\\n",
"0 None None z \n",
"1 April 2016 z \n",
"2 None None a \n",
"3 None None z \n",
"4 January 2016 z \n",
"\n",
" Notice Preference Definition Provided Email Address \\\n",
"0 email True \n",
"1 email True \n",
"2 print False \n",
"3 email True \n",
"4 email True \n",
"\n",
" Year Patron Registered Outside of County Supervisor District \n",
"0 2014 False 5.0 \n",
"1 2010 False 4.0 \n",
"2 2016 True NaN \n",
"3 2015 False 3.0 \n",
"4 2003 False 2.0 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#df\n",
"df.head()\n",
"#Überblick über das DataFrame"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 1: Wie viele Senioren und Kinder sind Kunden der San Francisco Public Library?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Um diese Frage zu beantworten, kommen die Spalten \"Patron Type Definition\" oder \"Age Range\" in Frage, also schauen wir uns die Einträge (Merkmalsausprägungen) an: "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ADULT 272251\n",
"JUVENILE 59208\n",
"SENIOR 41619\n",
"YOUNG ADULT 28816\n",
"WELCOME 14931\n",
"TEACHER CARD 1782\n",
"DIGITAL ACCESS CARD 1744\n",
"SPECIAL 977\n",
"STAFF 862\n",
"VISITOR 415\n",
"AT USER ADULT 349\n",
"RETIRED STAFF 157\n",
"BOOKS BY MAIL 95\n",
"AT USER SENIOR 66\n",
"AT USER JUVENILE 47\n",
"AT USER WELCOME 45\n",
"AT USER TEEN 44\n",
"FRIENDS FOR LIFE 40\n",
"Name: Patron Type Definition, dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Patron Type Definition'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Man sieht, dass es sich um nominale Werte handelt."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"25 to 34 years 91083\n",
"35 to 44 years 67390\n",
"10 to 19 years 58944\n",
"45 to 54 years 52492\n",
"0 to 9 years 38242\n",
"65 to 74 years 30141\n",
"20 to 24 years 29761\n",
"55 to 59 years 21230\n",
"60 to 64 years 19800\n",
"75 years and over 14150\n",
"Name: Age Range, dtype: int64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Age Range'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Man sieht, dass es sich um ordinale Werte handelt."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In der Beschreibung des Datensatzes steht, dass sich die Spalte 'Age Range' nach dem Geburtsdatum richtet. D.h. es ist davon auszugehen, dass die Nutzer der Bibliothek zum Zeitpunkt der Bereitstellung des Datensatzes (2016) in die Kategorien von 'Age Range' einsortiert werden. In der Spalte 'Patron Type Definition' sind verschiedene Merkmalsausprägungen zu finden, die nicht unbedingt etwas mit dem Alter zu tun haben (z.B. VISITOR oder SPECIAL). Daher ist davon auszugehen, dass wir mit 'Age Range' am nähesten Fragestellungen zu Alter beantworten zu können. Richtige Angaben zu tatsächlichem Alter der Nutzer liegen bei diesem Datensatz nicht vor."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"An dieser Stelle ist also zu definieren, was Senioren und Kinder sind. Eine Möglichkeit ist, Senioren als Age Range = 65 to 74 years und Age Range = 75 years and over zu definieren, man könnte aber auch Age Range = 60 to 64 years dazunehmen. Für das weitere Vorgehen, definieren wir Senioren als über 65-jährige und Kinder als bis 19-jährige. Um die Frage 1 zu beantworten, reicht es also, die entsprechenden Einträge zu summieren."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"kinder=df.loc[df['Age Range'] == \"0 to 9 years\"] #Hilfsvariable"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"38242"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(kinder) "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"senioren=df.loc[\n",
" (df['Age Range'] == \"65 to 74 years\") | \n",
" (df['Age Range'] == \"75 years and over\")\n",
"] \n",
"#Hilfsvariable\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"44291"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(senioren)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Antwort auf Frage 1:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Es sind 38242 Kinder (bis 19 Jahre) und 44291 Senioren (ab 65 Jahren) registriert.\n"
]
}
],
"source": [
"print('Es sind ' + str(len(kinder)) + ' Kinder (bis 19 Jahre) und ' + str(len(senioren)) + ' Senioren (ab 65 Jahren) registriert.' )\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"-----"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 2: Wie viele Nutzer möchten per Mail informiert werden?"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"323937"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(df.loc[(df['Notice Preference Definition'] == \"email\")])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Antwort auf Frage 2:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"323937 Nutzer möchten per Mail informiert werden.\n"
]
}
],
"source": [
"print(str(len(df.loc[(df['Notice Preference Definition'] == \"email\")])) + ' Nutzer möchten per Mail informiert werden.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 3: Wie alt sind diese Nutzer durchschnittlich im Vergleich zu Nutzern, die per Post informiert werden möchten?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Die relevante Spalte über die gewünschte Benachrichtigungsart schauen wir uns genauer an:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"email 323937\n",
"phone 68172\n",
"print 31336\n",
"Name: Notice Preference Definition, dtype: int64"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Notice Preference Definition'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Es handelt sich um ein nominales Merkmal."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Auch hier stoßen wir auf eine Interpretationsfrage. Da der Datensatz kein Alter ausgibt, sondern nur Altersstufen (Age Range) bzw. Kategorien, die nicht immer etwas mit dem Alter zu tun haben sondern eher mit dem Nutzerstatus (Patron Type Definition), müssen wir überlegen, was ein Durchschnitt bedeuten kann. Age Range ist ein ordinales Merkmal, d.h. wir können keinen Erwartungswert berechnen, aber uns dennoch Häufigkeitstabellen anschauen."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Um diese beiden Merkmale (nominal und ordinal) zu verbinden, können wir uns einen Plot angucken, dafür definieren wir eine neue Variable indem wir nach den Merkmalen filtern, die uns interessieren:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"benachrichtigung=df.loc[\n",
" (df['Notice Preference Definition'] == \"email\") | \n",
" (df['Notice Preference Definition'] == \"print\")\n",
"] #Hilfsvariable für den Plot, damit nur die Merkmale 'email' und 'print' angezeigt werden"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABNgAAAFqCAYAAADIjOelAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABSd0lEQVR4nO3deVxUdf///+fAIGjgpXiBmJptXlr6S0vKNIPUEhDHBXdx7SrTcrm6DCM0zdyRr6gVmi1WZouaghpiXpqauaSWmleaVu4aghuLAsPM+f3hx7kkxLBxBORxv9286bznnDPv93k5HOY573OOyTAMQwAAAAAAAAD+EreS7gAAAAAAAABQlhGwAQAAAAAAAE4gYAMAAAAAAACcQMAGAAAAAAAAOIGADQAAAAAAAHACARsAAAAAAADgBHNJd6CknD6dJbvdKOluAAAAAACAq/Dz8ynpLgDFxgw2AAAAAAAAwAkEbAAAAAAAAIATCNgAAAAAAAAAJxCwAQAAAAAAAE4gYAMAAAAAAACcQMAGAAAAAAAAOIGADQAAAAAAAHACARsAAAAAAADgBJcGbElJSQoPD1d4eLimTp0qSdq0aZMsFovatGmj+Ph4x7J79+5VRESEQkJCNGrUKOXn50uSTpw4ocjISIWGhmrw4MHKzs6WJGVkZGjgwIEKCwtTZGSk0tLSXDkUAAAAAAAA4KpcFrBdvHhREydO1Pz585WUlKTt27dr7dq1iomJUUJCgpKTk7Vnzx6tX79ekhQVFaUxY8Zo1apVMgxDCxculCSNGzdOvXr1UkpKiho2bKiEhARJ0owZMxQYGKiVK1eqa9eumjhxoquGAgAAAAAAABTJZQGbzWaT3W7XxYsXlZ+fr/z8fHl7e6tOnTqqXbu2zGazLBaLUlJSdPz4ceXk5Khx48aSpIiICKWkpMhqtWrbtm0KCQkp0C5J69atk8VikSS1a9dOGzZskNVqddVwAAAAAAAAgKsyu2rD3t7eGj58uMLCwlSxYkU9/PDDOnXqlPz8/BzL+Pv7KzU1tVC7n5+fUlNTdfbsWXl7e8tsNhdol1RgHbPZLG9vb505c0bVq1cvVv+qVfO+UUMFAAAAAABAOeaygG3fvn364osv9PXXX8vHx0cvvfSSDh06JJPJ5FjGMAyZTCbZ7fartl/++0p/fHzlOm5uxZ+Qd/p0lux24zpHBQAAAAAAbgY/P5+S7gJQbC47RXTjxo1q1qyZqlWrpgoVKigiIkJbt24tcDOCtLQ0+fv7KyAgoEB7enq6/P395evrq8zMTNlstgLLS5dmv6Wnp0uS8vPzlZ2drSpVqrhqOAAAAAAAAMBVuWwGW/369TVt2jRduHBBFStW1Nq1a9WoUSMtX75chw8fVq1atbRixQp17txZNWvWlKenp3bs2KEmTZooKSlJQUFB8vDwUGBgoJKTk2WxWJSYmKigoCBJUnBwsBITEzVo0CAlJycrMDBQHh4erhoOAJQJPpW95OVZun8W5uRalZmRU9LdAAAAAIAbxmQYhsvOk5w7d66WLFkiDw8P/X//3/+nsWPH6vvvv9fkyZOVm5ur4OBgvfLKKzKZTNq3b59Gjx6trKwsNWjQQJMnT1aFChV0/PhxRUdH6/Tp06pRo4amT5+uv/3tbzp37pyio6N19OhR+fj4KC4uTrVq1Sp23zhFFMCtyM/PR71GLijpblzTJ7GRSkvLLOluAAAAoJTjFFGUJS4N2EozAjYAtyICNgAAANwqCNhQlrjsGmwAAAAAAABAeUDABgAAAAAAADiBgA0AAAAAAABwAgEbAAAAAAAA4AQCNgAAAAAAAMAJBGwAAAAAAACAEwjYAAAAAAAAACcQsAEAAAAAAABOIGADAAAAAAAAnEDABgAAAAAAADiBgA0AAAAAAABwAgEbAAAAAAAA4AQCNgAAAAAAAMAJBGwAAAAAAACAEwjYAAAAAAAAACcQsAEAAAAAAABOIGADAAAAAAAAnEDABgAAAAAAADiBgA0AAAAAAABwAgEbAAAAAAAA4AQCNgAAAAAAAMAJBGwAAAAAAACAEwjYAAAAAAAAACcQsAEAAAAAAABOIGADAAAAAAAAnEDABgAAAAAAADiBgA0AAAAAAABwAgEbAAAAAAAA4ASzqza8aNEiffzxx47Hx44dU4cOHfTkk09q8uTJys3NVVhYmF588UVJ0t69ezVq1ChlZ2crMDBQ48aNk9ls1okTJxQVFaXTp0/rrrvuUlxcnG677TZlZGTopZde0tGjR+Xr66sZM2bIz8/PVcMBAAAAAAAArsplM9i6du2qpKQkJSUlKS4uTtWqVdOzzz6rmJgYJSQkKDk5WXv27NH69eslSVFRURozZoxWrVolwzC0cOFCSdK4cePUq1cvpaSkqGHDhkpISJAkzZgxQ4GBgVq5cqW6du2qiRMnumooAAAAAAAAQJFuyimir732ml588UUdPXpUderUUe3atWU2m2WxWJSSkqLjx48rJydHjRs3liRFREQoJSVFVqtV27ZtU0hISIF2SVq3bp0sFoskqV27dtqwYYOsVuvNGA4AAAAAAADg4PKAbdOmTcrJyVFYWJhOnTpV4DROf39/paamFmr38/NTamqqzp49K29vb5nN5gLtkgqsYzab5e3trTNnzrh6OAAAAAAAAEABLrsG22WfffaZBgwYIEmy2+0ymUyO5wzDkMlkKrL98t9X+uPjK9dxcyt+Xlitmvf1DAMAcAP5+fmUdBcAAAAA4IZxacCWl5enbdu2acqUKZKkgIAApaWlOZ5PS0uTv79/ofb09HT5+/vL19dXmZmZstlscnd3dywvXZr9lp6eroCAAOXn5ys7O1tVqlQpdt9On86S3W7cmIECQClRVoKrtLTMku4CAAAASrmy8rstILn4FNGff/5Zd955pypVqiRJatSokQ4ePKjDhw/LZrNpxYoVCgoKUs2aNeXp6akdO3ZIkpKSkhQUFCQPDw8FBgYqOTlZkpSYmKigoCBJUnBwsBITEyVJycnJCgwMlIeHhyuHAwAAAAAAABTi0hlsR48eVUBAgOOxp6enpkyZoqFDhyo3N1fBwcEKDQ2VJMXFxWn06NHKyspSgwYN1LdvX0nS2LFjFR0drdmzZ6tGjRqaPn26JGn48OGKjo5WeHi4fHx8FBcX58qhAAAAAAAAAFdlMgyjXJ4nySmiAG5Ffn4+6jVyQUl345o+iY3kFFEAAAD8KU4RRVni8ruIAgAAAAAAALcyAjYAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATnBpwLZ27VpFREQoLCxMEyZMkCRt2rRJFotFbdq0UXx8vGPZvXv3KiIiQiEhIRo1apTy8/MlSSdOnFBkZKRCQ0M1ePBgZWdnS5IyMjI0cOBAhYWFKTIyUmlpaa4cCgAAAAAAAHBVLgvYjh49qrFjxyohIUHLli3TTz/9pPXr1ysmJkYJCQlKTk7Wnj17tH79eklSVFSUxowZo1WrVskwDC1cuFCSNG7cOPXq1UspKSlq2LChEhISJEkzZsxQYGCgVq5cqa5du2rixImuGgoAAAAAAABQJJcFbKtXr1bbtm0VEBAgDw8PxcfHq2LFiqpTp45q164ts9ksi8WilJQUHT9+XDk5OWrcuLEkKSIiQikpKbJardq2bZtCQkIKtEvSunXrZLFYJEnt2rXThg0bZLVaXTUcAAAAAAAA4KrMrtrw4cOH5eHhoUGDBunkyZN64oknVLduXfn5+TmW8ff3V2pqqk6dOlWg3c/PT6mpqTp79qy8vb1lNpsLtEsqsI7ZbJa3t7fOnDmj6tWru2pIAAAAAAAAQCEuC9hsNpu2b9+u+fPnq1KlSho8eLC8vLxkMpkcyxiGIZPJJLvdftX2y39f6Y+Pr1zHza34E/KqVfO+zhEBAG4UPz+fku4CAAAAANwwLgvY/v73v6tZs2by9fWVJD355JNKSUmRu7u7Y5m0tDT5+/srICCgwE0K0tPT5e/vL19fX2VmZspms8nd3d2xvHRp9lt6eroCAgKUn5+v7OxsValSpdj9O306S3a7cWMGCwClRFkJrtLSMku6CwAAACjlysrvtoDkwmuwtWzZUhs3blRGRoZsNpu++eYbhYaG6uDBgzp8+LBsNptWrFihoKAg1axZU56entqxY4ckKSkpSUFBQfLw8FBgYKCSk5MlSYmJiQoKCpIkBQcHKzExUZKUnJyswMBAeXh4uGo4AAAAAAAAwFW5bAZbo0aN9Mwzz6hXr16yWq167LHH1LNnT919990aOnSocnNzFRwcrNDQUElSXFycRo8eraysLDVo0EB9+/aVJI0dO1bR0dGaPXu2atSooenTp0uShg8frujoaIWHh8vHx0dxcXGuGgoAAAAAAABQJJNhGOXyPElOEQVwK/Lz81GvkQtKuhvX9ElsJKeIAgAA4E9xiijKEpedIgoAAAAAAACUBwRsAAAAAAAAgBMI2AAAAAAAAAAnuOwmBwAAQPKp7CUvz9J7l+ucXKsyM3JKuhsAAABAmUbABgCAC3l5epTqG098EhupTBGwAQAAAM7gFFEAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEsys33qdPH505c0Zm86WXef3115Wdna3JkycrNzdXYWFhevHFFyVJe/fu1ahRo5Sdna3AwECNGzdOZrNZJ06cUFRUlE6fPq277rpLcXFxuu2225SRkaGXXnpJR48ela+vr2bMmCE/Pz9XDgcAAAAAAAAoxGUz2AzD0KFDh5SUlOT4U69ePcXExCghIUHJycnas2eP1q9fL0mKiorSmDFjtGrVKhmGoYULF0qSxo0bp169eiklJUUNGzZUQkKCJGnGjBkKDAzUypUr1bVrV02cONFVQwEAAAAAAACK5LKA7bfffpMkPf3002rfvr0+/vhj7d69W3Xq1FHt2rVlNptlsViUkpKi48ePKycnR40bN5YkRUREKCUlRVarVdu2bVNISEiBdklat26dLBaLJKldu3basGGDrFarq4YDAAAAAAAAXJXLThHNyMhQs2bN9Oqrr8pqtapv37565plnCpzG6e/vr9TUVJ06dapAu5+fn1JTU3X27Fl5e3s7TjG93C6pwDpms1ne3t46c+aMqlevXqz+VavmfaOGCgC4Tn5+PiXdBVyBegAAAADOcVnA9uCDD+rBBx90PO7SpYtmzZqlJk2aONoMw5DJZJLdbpfJZCrUfvnvK/3x8ZXruLkVf0Le6dNZstuNYi8PAGVBWQlK0tIyS7oLN01ZqEl5qgcAACg7ysLvUcBlLjtFdPv27dq8ebPjsWEYqlmzptLS0hxtaWlp8vf3V0BAQIH29PR0+fv7y9fXV5mZmbLZbAWWly7NfktPT5ck5efnKzs7W1WqVHHVcAAAAAAAAICrclnAlpmZqdjYWOXm5iorK0tLly7Vv//9bx08eFCHDx+WzWbTihUrFBQUpJo1a8rT01M7duyQJCUlJSkoKEgeHh4KDAxUcnKyJCkxMVFBQUGSpODgYCUmJkqSkpOTFRgYKA8PD1cNBwAAAAAAALgql50i2rJlS+3atUsdO3aU3W5Xr1699OCDD2rKlCkaOnSocnNzFRwcrNDQUElSXFycRo8eraysLDVo0EB9+/aVJI0dO1bR0dGaPXu2atSooenTp0uShg8frujoaIWHh8vHx0dxcXGuGgoAAAAAAABQJJNhGOXyQmRcgw3ArcjPz0e9Ri4o6W5c0yexkeXqml+lvSblrR4AAKDs4BpsKEtcdoooAAAAAAAAUB4QsAEAAAAAAABOIGADAAAAAAAAnEDABgAAAAAAADiBgA0AAAAAAABwAgEbAAAAAAAA4AQCNgAAAAAAAMAJBGwAAAAAAACAEwjYAAAAAAAAACcQsAEAAAAAAABOIGADAAAAAAAAnEDABgAAAAAAADiBgA0AAAAAAABwQrECttTU1EJtv/zyyw3vDAAAAAAAAFDWXDNgO3funM6dO6dnn31W58+fdzxOT0/XkCFDblYfAQAAAAAAgFLLfK0nR4wYoW+//VaS1LRp0/+tZDYrJCTEtT0DAAAAAAAAyoBrBmzvvfeeJOmVV17R5MmTb0qHAAAAAAAAgLLkmgHbZZMnT9bx48d1/vx5GYbhaG/QoIHLOgYAAAAAAACUBcUK2GbNmqX33ntP1apVc7SZTCatWbPGZR0DAAAAAAAAyoJiBWyJiYn66quvVL16dVf3BwAAAAAAAChTrnkX0ctq1KhBuAYAAAAAAABcRbFmsDVr1kyxsbFq3bq1vLy8HO1cgw0AAAAAAADlXbECtiVLlkiSUlJSHG1cgw0AAAAAAAAoZsC2du1aV/cDAAAAAADAKceOHVPr1q01YcIEde3a1dH+3nvv6cCBA5oyZco113/zzTdVv359Pfnkk5o5c6bq1Kmjjh07Ot2vPn366Pjx4/Lx8ZHJZJLValXDhg312muvqWLFite1rbFjx+qbb76RxWLRiy++6HTfXOmNN97QggULHJcdy8/PV7169TRs2DDdeeedf7r+lWP96aef9PLLL+vee+8tcvkra+aqWhalWAHbvHnzrto+YMCAG9oZAAAAAAAAZ7i5uWnq1Klq0qSJ7r777utad+vWrY4AZ/jw4Te0XyNHjlRoaKgkyTAMDR8+XLNmzdLLL798Xdv5/PPPtW7dOgUEBNzQ/rlK27ZtNWbMGMfjxMRE9evXT19++aW8vb2vue71jvXKmrmylldTrIBt//79jn/n5eVp27Ztatasmcs6BQAAAAAA8Fd4eXlpwIABeumll/TZZ5+pQoUKBZ7PzMzUuHHjtG/fPplMJj3++OP697//rc8//1x79uxRbGys3N3dtWbNGtWtW1f//Oc/tWvXLk2YMEEXL16Uh4eHRo4cqWbNmunXX3/VxIkTde7cOdlsNvXp00ddunT50z6aTCY1bdpUGzZskCQ1bNhQrVu31r59+xQXF6dKlSpddbu9evWSYRh69tlnNXbsWNWuXVuvv/66Tp48KavVqvDwcA0aNEjHjh1TZGSk7rnnHh0/flzz58/XsWPHFBcXp4sXL8rNzU1DhgxRy5YttWTJEq1evVpubm46fPiwvLy8NHXqVN1zzz1KS0vT2LFj9dtvv8nNzU09evRQ3759lZmZqYkTJ2r//v2yWq1q1qyZRo4cKbP5z2Omjh07atmyZVq+fLl69uxZ5D7841hHjhypmTNn6sKFC4qPj1ft2rV14MAB5efna9y4cWrSpImio6NVt25deXl5FVnL7du3KzY21lHLf/3rXwoKCrrmfiiOYgVskydPLvA4NTVVo0aNKtYLAAAAAAAA3EyDBw/W5s2bFR8fX2iG2IQJE1SlShUtX75cVqtVgwcP1vvvv6+BAwcqJSVFkZGReuqppxzXnbdarXrhhRc0YcIEPfHEE9qzZ49eeeUVffHFFxo2bJhiY2PVoEEDZWZmqnv37rr33nvVuHHja/bv/PnzWrlypVq1auV4jZYtW2rmzJnKz89Xhw4drrrdTz75RPXq1dOHH34oX19f9e3bV/3791erVq2Um5urZ599VnfccYceeOAB/f777/p//+//KTAwUOfPn9crr7yi9957T7Vq1VJqaqq6deumevXqSZK2bdumFStWKCAgQOPHj9fcuXM1depUjRs3TnfeeacSEhKUmZmpnj17Kjg4WHPmzFGDBg00ZcoU2Ww2RUdHa968eXr22WeLVZ969epp//79ys/PL3If/nGsV9q9e7fGjh2r++67T++//77i4+P18ccfO56PjIy8ai3Pnj2rYcOGafbs2WrUqJEOHDig3r17a/HixdfcD8VRrIDtj6pXr67jx4//lVUBAABKlE9lL3l5epR0N4qUk2tVZkZOSXcDAIAyzc3NTdOmTVPHjh3VokWLAs9t2LBBn376qUwmkypUqKAePXroww8/1MCBA6+6rf3798vNzU1PPPGEpEuzzZYvX65ffvlFR44cUUxMjGPZnJwc/fTTT1cN2GJjYzV79mwZhiFJatmypfr27et4PjAwUJJ06NChYm33woUL2rZtm86fP6+ZM2c62vbt26cHHnhAZrPZsfzOnTuVlpamF154wbG+yWTSzz//LElq0KCB4zTM+++/X6tXr5Ykbdq0SVFRUZIkHx8frVixQpK0bt06/fjjj45gKifn+n53MZlM8vLyKvZY/+j222/Xfffd5+jv0qVLi/W6u3fv1h133KFGjRpJkurWrauHHnpI3333nUwmU5H7oTiu+xpshmFoz549qlatWrFfBAAAoLTw8vRQr5ELSrobRfokNlKZImADAMBZNWrU0Lhx4/Tyyy8XuLi93W6XyWQq8Dg/P7/I7bi7uxdYXroUuhmGIR8fHyUlJTna09PT5ePjc9XtXHkNtqupVKmSJMlmsxVru3a7XYZh6LPPPnPcKOHMmTPy9PTU2bNnVaFCBccpmzabTffcc48WLVrkWD81NVW+vr5avny5vLy8HO0mk8kRAprN5gJjP3r0qKpWrSq73a6ZM2c6Tp/MyMgotI+u5ccff1Tnzp2LPdY/Kqq/f8ZmsxXqp2EYys/Pl4eHx1/eriS5FWeh/fv3O/4cOHBANWrUUFxcXLFeYOrUqYqOjpZ0Kfm0WCxq06aN4uPjHcvs3btXERERCgkJ0ahRoxz/sU+cOKHIyEiFhoZq8ODBys7OlnSpcAMHDlRYWJgiIyOVlpZW7AEDAAAAAIDyITQ0VEFBQfrwww8dbS1atNDHH38swzCUl5enhQsXqnnz5pIuhWl/DNvuvvtumUwmffvtt5Kk//73v+rXr5/uuusueXl5OcKhkydPql27dtqzZ49TfS7udr29vdW4cWPHpKiMjAz17NnTcTrklRo3bqzDhw9r27Ztki7lMCEhIUpNTb1mX5o1a6YvvvhC0qVr1/Xr10+HDh1SixYt9MEHHzj24eDBgwuconktixYt0rFjxxQWFuayfShdvZaNGzfWb7/9pt27d0uSDhw4oG3btumRRx5x+vWu6xpsx48fV35+vurUqVOsjW/evFlLly7VE088oZycHMXExGj+/PmqUaOGnnvuOa1fv17BwcGKiorShAkT1LhxY8XExGjhwoXq1auXxo0bp169eik8PFxvvfWWEhISFBUVpRkzZigwMFBz585VYmKiJk6cqBkzZvzlnQAAAAAAAG5No0eP1o4dOwo8njBhgiwWi6xWqx5//HENGjRIktSqVStNnz5dVqvVsXyFChX0xhtvaNKkSYqNjZWHh4feeOMNVahQQQkJCZo4caLeffdd5efna/jw4WrSpIlT/b2e7cbFxWn8+PGyWCzKy8tTu3bt1L59ex07dqzAcr6+vpo1a5ZiY2OVm5srwzAUGxurWrVq6bvvviuyL2PGjNFrr70mi8UiwzD03HPPqWHDhho1apQmTpzo2IfNmzfXM888c9VtJCcna8eOHTKZTLLb7brrrrv00UcfydPTU5Jcsg+lq9fS19dXM2fO1Pjx45WTkyOTyaTJkyfrrrvu0g8//ODU65mMYsx3O3z4sJ5//nmdOnVKdrtdVatW1dtvv33NOymcO3dOAwcOVNu2bbVv3z5FRETorbfecqTGiYmJ2rp1q4YMGaJ+/frpP//5jyRp+/btmjVrlt577z01bdpU3333ncxms06ePKnevXtrzZo1atWqlRYsWKAaNWooPz9fjzzyiLZu3SoPj+JfT+X06SzZ7cWf6gcAZYGfn0+pPvVNunT6W1paZkl346Yp7TUpb/WQqAkAAGWFn9+1TxMESpNizWB7/fXX9cwzz6hTp06SpC+++ELjxo3TRx99VOQ6Y8aM0YsvvqiTJ09Kkk6dOiU/Pz/H8/7+/kpNTS3U7ufnp9TUVJ09e1be3t6O84Uvt/9xW2azWd7e3jpz5oyqV69e7IFXq+Zd7GUBADcWvyyVLtSj9KEmAAAAZUuxArbTp087wjVJ6ty5sz744IMil1+0aJFq1KihZs2aacmSJZIKX0TQMAzH9MCrtV/++0pFXTDPMAy5uRXrcnJXjIkZbABuPWXlQ3l5mp1TFmpSnuohURMAAMqKsnDMBi4rVsBms9l07tw5ValSRdKlu1JcS3JystLS0tShQwedP39eFy5c0PHjx+Xu7u5YJi0tTf7+/goICChwk4L09HT5+/vL19dXmZmZstlscnd3dywvXZr9lp6eroCAAOXn5ys7O9vRNwAAAAAAAOBmKlbA1rt3b3Xv3l1hYWEymUxKTk5Wv379ilz+8h0sJGnJkiX67rvvNG7cOLVp00aHDx9WrVq1tGLFCnXu3Fk1a9aUp6enduzYoSZNmigpKUlBQUHy8PBQYGCgkpOTZbFYlJiYqKCgIElScHCwEhMTNWjQICUnJyswMPC6rr8GAAAAAAAA3CjFOq8yODhYkmS1WvXrr78qNTVVTz311HW9kKenp6ZMmaKhQ4eqbdu2uvvuuxUaGirp0l0vJk+erNDQUF24cEF9+/aVJI0dO1YLFy5U27ZttX37dv3rX/+SJA0fPlw7d+5UeHi4PvnkE40ZM+a6+gIAAAAAAADcKMW6i2j//v3VqlUr9e3bV7m5ufr000/17bff6p133rkZfXQJrsEG4FZU2u+OKJW/OySW9pqUt3pI1AQAgLKCa7ChLCnWDLazZ886ZpV5enqqf//+Ba6bBgAAAAAAgL8mz2orU9v9M6NGjdKPP/6orVu3qk+fPiXSh5ut2Dc5SE1NVfXq1SVduhFBMSa+AQAAAAAA4E9U8HB3yQz7T2Ijb/g2i2PixImSpK1bt5bI65eEYgVs/fv3V8eOHfX444/LZDJp06ZNGjlypKv7BhTiU9lLXp6l94YWOblWZWbklHQ3AAAAAAAotrlz52rlypWy2Wxq0aKFevbsqSFDhujuu+/WL7/8ovvvv18PPvigli5dqvPnz+utt97SPffco5UrV2revHnKyclRXl6eJk2apIceekh9+vTRkCFDSnpYN1WxArYuXbqoYcOG2rJli9zd3fXPf/5T//jHP1zdN6AQL0+PUn/dnEwRsAEAAAAAyoYNGzZoz549Wrx4sUwmk6KiorR8+XL9/PPPmjx5surXr6+QkBD5+/vr888/15tvvqnPP/9c0dHR+uyzzzRnzhz5+vpq8eLFmjt3rubMmVPSQyoRxQrYJKl+/fqqX7++K/sCAAAAAACAm2jz5s3avXu3IiIiJEk5OTkyDEN///vfdf/990uSAgIC1KxZM0nS7bffrmPHjsnNzU1vvfWW1q5dq4MHD+q7776Tm1uxLvV/Syp2wAYAAAAAAIBbi81mU79+/TRgwABJUkZGhn7//Xft3LmzwHLu7u4FHmdnZ6tLly5q3769Hn74YdWrV08LFpTeM85crfxGiwAAAAAAAOXco48+qqSkJGVnZys/P18vvPCC9uzZ86frHTp0SCaTSYMGDVLTpk21evVq2Wwlc9fS0oAZbAAAAAAAAOVUq1attG/fPnXr1k02m02PP/64Hn744T9dr379+rrvvvsUFhYmk8mkFi1aaMeOHTehx6WTyTAMo6Q7URJOn86S3V4uh16m+fn5lPqbHKSlZZZ0N1COlfb3iFT+3ielvSblrR4SNQEAoKzw8/Mp6S7cNHlWmyp4uP/5gqVkuyiMU0QBAAAAAABKkKtCMMK1m4eADQAAAAAAAHACARsAAAAAAADgBAI2AAAAAAAAwAkEbAAAAAAAAIATCNgAAAAAAAAAJxCwAQAAAAAAAE4gYAMAAAAAAChB9nxrqd/umjVrNHPmzGsus3DhQq1YseKGvWZZYi7pDgAAAAAAAJRnbmYP7Yh95oZvt8nId2/Ytlq3bq3WrVtfc5nvv/9ejzzyyA17zbKEgA0AAAAAAKAc27p1qxISEmQ2m3Xs2DE98MADGjx4sJ5//nlVrVpVXl5eslgs+u677zRlyhS1atVK7du318aNG3Xx4kVNnTpVGRkZWrt2rbZs2SI/Pz89/vjjJT2sm4pTRAEAAAAAAMq5H374QaNGjVJKSopyc3O1fv16HTx4UNOmTdO8efMKLV+lShUtXrxYPXr00Ntvv63mzZurVatWGjZsWLkL1yQCNgAAAAAAgHLv4Ycf1t133y2TyaQOHTpoy5YtqlatmmrVqnXV5S+HaHXr1tW5c+duYk9LJwI2AAAAAACAcs7d3d3xb8Mw5O7uLi8vryKX9/T0lCSZTCaX960sIGADAAAAAAAo53bs2KHU1FTZ7XYlJiYqKCjourfh7u4um83mgt6VftzkAAAAAAAAoATZ86039I6fV27XzexRrGX9/f01cuRIpaam6rHHHlPz5s01d+7c63q95s2ba/r06fLx8VFoaOhf6XKZRcAGAAAAAABQgoobgrlyu3//+9/14YcfFmhbu3at498RERGKiIgo1N60aVM1bdpUkhQeHq7w8HBnulxmcYooAAAAAAAA4ARmsAEAAAAAAJRjV85Cw1/DDDYAAAAAAADACS4N2GbOnKm2bdsqPDxc8+bNkyRt2rRJFotFbdq0UXx8vGPZvXv3KiIiQiEhIRo1apTy8/MlSSdOnFBkZKRCQ0M1ePBgZWdnS5IyMjI0cOBAhYWFKTIyUmlpaa4cCgAAAAAAAHBVLgvYvvvuO23ZskXLli3TF198ofnz52vfvn2KiYlRQkKCkpOTtWfPHq1fv16SFBUVpTFjxmjVqlUyDEMLFy6UJI0bN069evVSSkqKGjZsqISEBEnSjBkzFBgYqJUrV6pr166aOHGiq4YCAAAAAAAAFMllAdsjjzyijz76SGazWadPn5bNZlNGRobq1Kmj2rVry2w2y2KxKCUlRcePH1dOTo4aN24s6dKdKVJSUmS1WrVt2zaFhIQUaJekdevWyWKxSJLatWunDRs2yGq1umo4AAAAAAAAwFW59BRRDw8PzZo1S+Hh4WrWrJlOnTolPz8/x/P+/v5KTU0t1O7n56fU1FSdPXtW3t7eMpvNBdolFVjHbDbL29tbZ86cceVwAAAAAAAAgEJcfhfRYcOG6dlnn9WgQYN06NAhmUwmx3OGYchkMslut1+1/fLfV/rj4yvXcXMrfl5YrZr3dY4EKB4/P5+S7gJQ6vE+KV2oR+lDTQAAAMoWlwVsv/76q/Ly8nTfffepYsWKatOmjVJSUuTu7u5YJi0tTf7+/goICChwk4L09HT5+/vL19dXmZmZstlscnd3dywvXZr9lp6eroCAAOXn5ys7O1tVqlQpdv9On86S3W7csPHi5igLHzjS0jJLugsox8rCe0QqX++TslCT8lQPiZoAAFBWlIVjNnCZy04RPXbsmEaPHq28vDzl5eVpzZo16tGjhw4ePKjDhw/LZrNpxYoVCgoKUs2aNeXp6akdO3ZIkpKSkhQUFCQPDw8FBgYqOTlZkpSYmKigoCBJUnBwsBITEyVJycnJCgwMlIeHh6uGAwAAAAAAAFyVy2awBQcHa/fu3erYsaPc3d3Vpk0bhYeHy9fXV0OHDlVubq6Cg4MVGhoqSYqLi9Po0aOVlZWlBg0aqG/fvpKksWPHKjo6WrNnz1aNGjU0ffp0SdLw4cMVHR2t8PBw+fj4KC4uzlVDAQAAAAAAAIrk0muwDR06VEOHDi3Q1qxZMy1btqzQsvXr19fixYsLtdesWVPz588v1F6lShXNmTPnxnUWAAAAAAAA+AtcehdRAAAAAAAA4FZHwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACS69i2hZ51PZS16eHiXdjWvKybUqMyOnpLsBAAAAAABQbhGwXYOXp4d6jVxQ0t24pk9iI5UpAjYAAAAAAICSwimiAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATjCXdAcAlG0+lb3k5elR0t0oUk6uVZkZOSXdDQAAAADALYyADYBTvDw91GvkgpLuRpE+iY1UpgjYAAAAAACuwymiAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACQRsAAAAAAAAgBNcGrC9+eabCg8PV3h4uGJjYyVJmzZtksViUZs2bRQfH+9Ydu/evYqIiFBISIhGjRql/Px8SdKJEycUGRmp0NBQDR48WNnZ2ZKkjIwMDRw4UGFhYYqMjFRaWporhwIAAAAAAABclcsCtk2bNmnjxo1aunSpEhMT9d///lcrVqxQTEyMEhISlJycrD179mj9+vWSpKioKI0ZM0arVq2SYRhauHChJGncuHHq1auXUlJS1LBhQyUkJEiSZsyYocDAQK1cuVJdu3bVxIkTXTUUAAAAAAAAoEguC9j8/PwUHR2tChUqyMPDQ/fcc48OHTqkOnXqqHbt2jKbzbJYLEpJSdHx48eVk5Ojxo0bS5IiIiKUkpIiq9Wqbdu2KSQkpEC7JK1bt04Wi0WS1K5dO23YsEFWq9VVwwEAAAAAAACuyuyqDdetW9fx70OHDmnlypXq3bu3/Pz8HO3+/v5KTU3VqVOnCrT7+fkpNTVVZ8+elbe3t8xmc4F2SQXWMZvN8vb21pkzZ1S9enVXDQkAAAAAbjqfyl7y8vQo6W4UKSfXqsyMnJLuBgCUKJcFbJcdOHBAzz33nEaOHCl3d3cdOnTI8ZxhGDKZTLLb7TKZTIXaL/99pT8+vnIdN7fiT8irVs37+gZSivn5+ZR0F3AF6lH6UJPSh5qULtSj9KEmAP6o18gFJd2FIn0SGykvv9IbAALAzeDSgG3Hjh0aNmyYYmJiFB4eru+++67AzQjS0tLk7++vgICAAu3p6eny9/eXr6+vMjMzZbPZ5O7u7lheujT7LT09XQEBAcrPz1d2draqVKlS7L6dPp0lu9245jJl5ZfbtLTMku7CTVMWalKe6iFRk9KmLNRDoialTXmqh0RNAJQ9/NxCeVUW/u8Dl7nsGmwnT57UCy+8oLi4OIWHh0uSGjVqpIMHD+rw4cOy2WxasWKFgoKCVLNmTXl6emrHjh2SpKSkJAUFBcnDw0OBgYFKTk6WJCUmJiooKEiSFBwcrMTERElScnKyAgMD5eHBtyYAAAAAAAC4uVw2g+29995Tbm6upkyZ4mjr0aOHpkyZoqFDhyo3N1fBwcEKDQ2VJMXFxWn06NHKyspSgwYN1LdvX0nS2LFjFR0drdmzZ6tGjRqaPn26JGn48OGKjo5WeHi4fHx8FBcX56qhAAAAAAAAAEVyWcA2evRojR49+qrPLVu2rFBb/fr1tXjx4kLtNWvW1Pz58wu1V6lSRXPmzHG+owAAAAAAAIATXHaKKAAAAAAAAFAeELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcAIBGwAAAAAAAOAEAjYAAAAAAADACQRsAAAAAAAAgBMI2AAAAAAAAAAnELABAAAAAAAATiBgAwAAAAAAAJxAwAYAAAAAAAA4wVzSHQAAAED55VPZS16eHiXdjWvKybUqMyOnpLsBAABKMQI2AAAAlBgvTw/1GrmgpLtxTZ/ERipTBGwAAKBonCIKAAAAAAAAOIGADQAAAAAAAHACARsAAAAAAADgBAI2AAAAAAAAwAnc5AAAAACAQ2m/syt3dQUAlEYEbAAAAAAcSvudXbmrKwCgNOIUUQAAAAAAAMAJBGwAAAAAAACAEwjYAAAAAAAAACcQsAEAAAAAAABOIGADAAAAAAAAnEDABgAAAAAAADiBgA0AAAAAAABwAgEbAAAAAAAA4AQCNgAAAAAAAMAJLg3YsrKy1K5dOx07dkyStGnTJlksFrVp00bx8fGO5fbu3auIiAiFhIRo1KhRys/PlySdOHFCkZGRCg0N1eDBg5WdnS1JysjI0MCBAxUWFqbIyEilpaW5chgAAAAAAABAkVwWsO3atUs9e/bUoUOHJEk5OTmKiYlRQkKCkpOTtWfPHq1fv16SFBUVpTFjxmjVqlUyDEMLFy6UJI0bN069evVSSkqKGjZsqISEBEnSjBkzFBgYqJUrV6pr166aOHGiq4YBAAAAAAAAXJPLAraFCxdq7Nix8vf3lyTt3r1bderUUe3atWU2m2WxWJSSkqLjx48rJydHjRs3liRFREQoJSVFVqtV27ZtU0hISIF2SVq3bp0sFoskqV27dtqwYYOsVqurhgIAAAAAAAAUyeyqDf9xVtmpU6fk5+fneOzv76/U1NRC7X5+fkpNTdXZs2fl7e0ts9lcoP2P2zKbzfL29taZM2dUvXp1Vw0HAAAAAAAAuCqXBWx/ZLfbZTKZHI8Nw5DJZCqy/fLfV/rj4yvXcXO7vsl41ap5X9fypZmfn09JdwFXoB6lDzUpfahJ6UI9Sh9qUvpQk9KFepQ+1ARAeXfTAraAgIACNyNIS0uTv79/ofb09HT5+/vL19dXmZmZstlscnd3dywvXZr9lp6eroCAAOXn5ys7O1tVqlS5rv6cPp0lu9245jJl5SCRlpZZ0l24acpCTcpTPSRqUtqUhXpI1KS0KU/1kKhJaVMW6iFRk9KmPNVDoiYov8rC/33gMpfeRfRKjRo10sGDB3X48GHZbDatWLFCQUFBqlmzpjw9PbVjxw5JUlJSkoKCguTh4aHAwEAlJydLkhITExUUFCRJCg4OVmJioiQpOTlZgYGB8vDwuFlDAQAAAAAAABxu2gw2T09PTZkyRUOHDlVubq6Cg4MVGhoqSYqLi9Po0aOVlZWlBg0aqG/fvpKksWPHKjo6WrNnz1aNGjU0ffp0SdLw4cMVHR2t8PBw+fj4KC4u7mYNAwAAAAAAACjA5QHb2rVrHf9u1qyZli1bVmiZ+vXra/HixYXaa9asqfnz5xdqr1KliubMmXNjOwoAAAAAAAD8BTftFFEAAAAAAADgVkTABgAAAAAAADiBgA0AAAAAAABwAgEbAAAAAAAA4AQCNgAAAAAAAMAJBGwAAAAAAACAEwjYAAAAAAAAACcQsAEAAAAAAABOMJd0BwAAAAAAKCt8KnvJy9OjpLtxTTm5VmVm5JR0N4ByhYANAAAAAIBi8vL0UK+RC0q6G9f0SWykMkXABtxMBGzADWTPt8rPz6eku3FN+Xm5Ons+r6S7AQAAAADALYOADbiB3Mwe2hH7TEl345qajHxXEgEbAAAAAAA3Cjc5AAAAAAAAAJxAwAYAAAAAAAA4gYANAAAAAAAAcALXYAMA3FSl/WYg3AgEAAAAwPUiYAMA3FSl/WYg3AgEAAAAwPUiYCvjmAkCAAAAAABQsgjYyjhmggAAAAAAAJQsbnIAAAAAAAAAOIEZbAAAlGOl/VIDUvm73EBpr0l5qwcAAEBxELABAFCOlfZLDUjl73IDpb0m5a0eAAAAxUHABgAAAAD4y5h5CwAEbAAAAAAAJzDzFgAI2ADc4vhGFQAAAADgagRsAG5pfKMKAACA8oYvmYGbj4ANAAAAuAY+qJYupb0eUvmrCUofvmQGbj4CNgAAAOAa+KBaupT2ekjlryYAAMmtpDsAAAAAAAAAlGVlOmBbvny52rZtqzZt2mjBggUl3R0AAAAAAACUQ2X2FNHU1FTFx8dryZIlqlChgnr06KGmTZvq3nvvLemuAQAAAAAAoBwpswHbpk2b9Oijj6pKlSqSpJCQEKWkpGjIkCHFWt/NzVSs5f5e9ba/2sWbpkLlaiXdhWsq7r4urtJek9JeD4malDblrR4SNSltSns9JGpS2pS3ekjUpLQp7fWQqElpU97qIZW/mgAlzWQYhlHSnfgr3n77bV24cEEvvviiJGnRokXavXu3xo8fX8I9AwAAAAAAQHlSZq/BZrfbZTL9L/E2DKPAYwAAAAAAAOBmKLMBW0BAgNLS0hyP09LS5O/vX4I9AgAAAAAAQHlUZgO25s2ba/PmzTpz5owuXryor776SkFBQSXdLQAAAAAAAJQzZfYmB9WrV9eLL76ovn37ymq1qkuXLnrggQdKulsAAAAAAAAoZ8rsTQ4AAAAAAACA0qDMniIKAAAAAAAAlAYEbAAAAAAAAIATCNgAAAAAAAAAJxCwAQAAAAAAAE4gYLvBli9frrZt26pNmzZasGDBVZfp06fPdW1z9+7d6ty5sywWi5577jmlpaXdiK7ekrKystSuXTsdO3bM0bZp0yZZLBa1adNG8fHxV13vlVde0fHjx6/79RYtWqTo6GjH4/T0dA0aNEjt2rVT9+7d9cMPP1z/IG4Rb775psLDwxUeHq7Y2FhHuyvq8euvvyoyMlIdOnRQ9+7dtXfv3gLPZ2Vl6cknn9TWrVv/2mBuEUXV5JVXXlGbNm3UoUMHdejQQatXry607vXW5JdfflGPHj3Uvn179enTp9C61OSSmTNnqm3btgoPD9e8efMc7a6oyWW///67HnnkkQI/JyVqcqWpU6cW+Nnuinp89913atq0qWObr7zySoHnqcclffr0UXh4uGM/7dq1S9LNrQnH9oLWrl2riIgIhYWFacKECY52Vxzfs7KyNGLECHXs2FEdO3bUf//730LPl/f3SVH1cMV7JCIiwrG9kJAQ3X///UpPT3c8f6vXY9GiRY7xd+jQQU2aNNHrr78uqXj7uyzaunXrdX92Bco1AzfM77//brRs2dI4e/askZ2dbVgsFuPAgQOFlvvHP/5R7G3a7XYjODjY2Lx5s2EYhvHll18azz333A3r861k586dRrt27YwGDRoYR48eNQzDMC5evGgEBwcbR44cMaxWq/H0008b69atK7Ruy5YtHesUR05OjjFt2jSjcePGxssvv+xoHzFihDFz5kzDMAzjyJEjRuvWrY2LFy86ObKy59tvvzW6d+9u5ObmGnl5eUbfvn2Nr776ymX16NGjh/H1118bhmEYmzZtMiwWS4HnR44caTz88MPGli1bnBpXWVZUTQzDMNq1a2ekpqZec/3rrUnv3r2N9evXG4ZhGJ988onx73//u8Dz1MQwtm7davTo0cOwWq3GxYsXjZYtWxq//vqrYRiuqYlhGIbNZjOefvppo3HjxoXWpSaXbNq0yWjatGmBn+2uqMd7771nzJkzp8jnqcel34FatGhhWK3WQs/dzJpwbP+fI0eOGC1atDBOnjxp5OXlGT179jTWrVvnsuN7TEyMMW3aNMMwDGP9+vVGly5dCjxf3t8nRdXDMFx3HLksKirKmD17doG28lSP/fv3G0899ZRx+vRpwzCKt7/Loi1bthi9e/cu6W4AZQYz2G6gTZs26dFHH1WVKlVUqVIlhYSEKCUlpcAyl79Z6tq1qyTp66+/VocOHWSxWPT8888X+BZIks6ePaucnBw9+uijkqSWLVtq48aNysvLcyxz+PBhPfHEE7Lb7ZIufdPwzDPPSJLmzp2rTp06qX379oqNjZVhGJKk+Ph4devWTSEhIerTp4/jdR999FE988wz6tChg06ePKnevXsrIiJCXbp00c6dO2/wHruxFi5cqLFjx8rf39/Rtnv3btWpU0e1a9eW2WyWxWIpVJO5c+fq1KlTGjhwoM6ePaudO3eqa9euat++vfr166fDhw8Xeq1t27bJbrcrKiqqQPvevXsVFhYmSapdu7aqVKlS4Jtuu92uVq1a6eDBg5KkCxcuKDg4WLm5udqwYYO6dOmijh07asiQITp79qwkaeXKlerWrZvat2+v0NBQff/995Iufas/ZMgQhYSEaPfu3YqKinJ8w7tw4cIbsEf/Oj8/P0VH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fH191aVLF61fv/6m14Rj+//YbDZt3rxZkyZN0ueff67du3dr6dKlLjm+22w2paeny8fHR59//rmee+45vfDCC/zcukJR9XDlsf3AgQM6e/asWrZsKal8Hkc+++wzDRgwwPG4OPv7tttuU3BwsFavXq3t27erdu3aql69ujZt2qTPPvtMHTp0UGRkpC5cuKADBw6oXbt2euyxx/TBBx9owoQJOnfunOPz2l133SUfHx9JUuvWrTVkyBC9/vrruv/++9WiRYsCr/tnn/sunwFSt25dnT9/Xj///LP8/f11zz33SJI6depUaPzZ2dk6cuSI4+dl48aN9be//U2//fab2rdvry+//FLSpVmIFotFW7du1eHDh9WtWzd16NBBa9asccxQlv732RO4FZhLugO3koCAAG3fvt3xOC0trcDpin/0x6nDhmEoPz+/0HJms1nz58+XJJ0+fVoJCQmqUqVKgWVCQ0MVHx+vVatWKSgoSJ6enrLZbOrXr5/jAJCRkSF3d3ft2bNHI0aMUP/+/RUSEiI3NzfHqaOSHAfHJk2a6Msvv9S6deuUnJyspUuXFrgId1kQEBBQ4KYQ11sT6VJdbDZbsV7vwoULGj9+vLy9vSVJ4eHhuuOOOwosU6tWLd1+++366quvdPr0aTVq1Ej/+c9/9NBDD2nOnDmSpNzcXGVnZys7O1tdunRR+/bt9fDDD6tevXoFbp5xuVZVq1bVl19+qW+//Vbr169Xp06d9OWXXxY4Le9m27Fjh4YNG6aYmBiFh4dLcl098vPz9fLLLys1NVUfffSRfHx89Msvv+i3337TqFGjJElHjhzR6NGjNX78eMcp11L5qYd09Zr8/PPPOnTokEJCQiRd2r9mc9GHhuLWJDk5WWFhYTKZTAoKClJOTo6+//57anKFX3/9VXl5ebrvvvtUsWJFtWnTRj///LNLarJ9+3adPn1agwcPliTHaUHTp0+nJv8nOTlZaWlp6tChg86fP68LFy5o0qRJ6ty58w2vh91u19tvv62BAwfK3d3d0f77779Tjyts375dVqvVEXpe3veueI8UVRN3d3edP3+eY/v/+fvf/65mzZrJ19dXkvTkk09q9+7datu27Q0/vletWlVms1nt2rWTJD322GO6cOGCduzYwfvk/xRVjwYNGrjk2C5J//nPf9S2bVvH499++61c1SMvL0/btm3T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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.catplot(x='Age Range', kind='count', hue='Notice Preference Definition', data=benachrichtigung, aspect=3, order=[\"0 to 9 years\",\"10 to 19 years\",\"20 to 24 years\",\"25 to 34 years\",\"35 to 44 years\",\"45 to 54 years\",\"55 to 59 years\",\"60 to 64 years\",\"65 to 74 years\",\"75 years and over\"])\n",
"#wenn data=df gewählt wird, würden wir auch die Werte für 'print' sehen"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Um besser die Zahlen zu verstehen, hilft uns eine Kreuztabelle:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
All
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
email
\n",
"
27475
\n",
"
38055
\n",
"
23809
\n",
"
79351
\n",
"
57698
\n",
"
41450
\n",
"
15328
\n",
"
13805
\n",
"
20299
\n",
"
6508
\n",
"
323778
\n",
"
\n",
"
\n",
"
print
\n",
"
4135
\n",
"
5831
\n",
"
2128
\n",
"
4697
\n",
"
3193
\n",
"
3285
\n",
"
1635
\n",
"
1691
\n",
"
2698
\n",
"
2023
\n",
"
31316
\n",
"
\n",
"
\n",
"
All
\n",
"
31610
\n",
"
43886
\n",
"
25937
\n",
"
84048
\n",
"
60891
\n",
"
44735
\n",
"
16963
\n",
"
15496
\n",
"
22997
\n",
"
8531
\n",
"
355094
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"email 27475 38055 23809 \n",
"print 4135 5831 2128 \n",
"All 31610 43886 25937 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"email 79351 57698 41450 \n",
"print 4697 3193 3285 \n",
"All 84048 60891 44735 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"email 15328 13805 20299 \n",
"print 1635 1691 2698 \n",
"All 16963 15496 22997 \n",
"\n",
"Age Range 75 years and over All \n",
"Notice Preference Definition \n",
"email 6508 323778 \n",
"print 2023 31316 \n",
"All 8531 355094 "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True\n",
")\n",
"# Beachte, dass wir hier eine Teilmenge des Datensatzes betrachten über die Variable \"benachrichitigung\". \n",
"# D.h. wir blenden die Ereignisse aus, wo in der Spalte 'Notice Preference Definition' nicht \n",
"# 'email' oder 'print' steht."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"###### WICHTIG:\n",
"Beachte, dass die Summe der Nutzer, die per Mail informiert werden hier 323778 ergibt. Wir haben aber bei Frage 2 festgestellt, dass eigentlich 323937 Nutzer per Mail informiert werden möchten.\n",
"Dies liegt daran, dass offensichtlich in einigen Einträgen (Zeilen des Datensatzes) zwar im Feld \"Notice Preference Definition\" der Wert \"email\" steht, aber offensichtlich im Feld \"Age Range\" kein Eintrag steht. In der Kreuztabelle werden die beiden Merkmale 'Age Range' und 'Notice Preference Definition' betrachtet und somit nur die Einträge, wo entsprechednd beide Felder ausgefüllt sind.\n",
"\n",
"(Das ist übrigens unabhängig ob man die Kreuztabelle über die \"große\" Variable \"df\" oder \"benachrichtigung\" berechnet, probiere es gerne aus!)\n",
"\n",
"----"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
email
\n",
"
0.084858
\n",
"
0.117534
\n",
"
0.073535
\n",
"
0.245078
\n",
"
0.178202
\n",
"
0.128020
\n",
"
0.047341
\n",
"
0.042637
\n",
"
0.062694
\n",
"
0.020100
\n",
"
\n",
"
\n",
"
print
\n",
"
0.132041
\n",
"
0.186199
\n",
"
0.067952
\n",
"
0.149987
\n",
"
0.101961
\n",
"
0.104898
\n",
"
0.052210
\n",
"
0.053998
\n",
"
0.086154
\n",
"
0.064600
\n",
"
\n",
"
\n",
"
All
\n",
"
0.089019
\n",
"
0.123590
\n",
"
0.073043
\n",
"
0.236692
\n",
"
0.171479
\n",
"
0.125981
\n",
"
0.047770
\n",
"
0.043639
\n",
"
0.064763
\n",
"
0.024025
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"email 0.084858 0.117534 0.073535 \n",
"print 0.132041 0.186199 0.067952 \n",
"All 0.089019 0.123590 0.073043 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"email 0.245078 0.178202 0.128020 \n",
"print 0.149987 0.101961 0.104898 \n",
"All 0.236692 0.171479 0.125981 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"email 0.047341 0.042637 0.062694 \n",
"print 0.052210 0.053998 0.086154 \n",
"All 0.047770 0.043639 0.064763 \n",
"\n",
"Age Range 75 years and over \n",
"Notice Preference Definition \n",
"email 0.020100 \n",
"print 0.064600 \n",
"All 0.024025 "
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Nun möchten wir das prozentual betrachten:\n",
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True, normalize=0\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Antwort auf Frage 3:\n",
"\n",
" Die Frage können wir wie folgt beantworten. \n",
" Von allen Nutzern, die per Mail informiert werden möchten, sind\n",
" - ca. 9% in der Alterklasse 0 bis 9 Jahre,\n",
" - ca. 12% in der Altersklasse 10 bis 19 Jahre,\n",
" \n",
" ...\n",
" \n",
" - ca. 6% in der Altersklasse 65 bis 74 Jahre,\n",
" - ca. 2% in der Altersklasse 75 Jahre und älter.\n",
"\n",
"Im Vergleich dazu, sind von allen Nutzern, die per Post informiert werden möchten\n",
"- ca. 13% in der Altersklasse 0 bis 9 Jahre,\n",
"- ca. 17% in der Altersklasse 10 bis 19 Jahre,\n",
"\n",
"...\n",
"\n",
"- ca. 86% in der Altersklasse 65 bis 74 Jahre,\n",
"- ca. 65% in der Altersklasse 75 Jahre und älter.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 4: Wie viele Ausleihen werden im Mittel pro Altersgruppe und pro Jahr getätigt? Ist die Streuung zwischen den Gruppen gleich?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Für diese Fragestellung sind die Spalten 'Total Checkouts' und 'Age Range' relevant. Bei der ersten handelt es sich um ein metrisches Merkmal, die zweite ist ordinal.\n",
"Wir definieren eine neue Spalte, die die durchschnittliche jährliche Ausleihe eines Nutzers ausgibt.\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"df['Circulation Active Year'] = pd.to_numeric(df['Circulation Active Year'], errors='coerce')\n",
"df['Membership Duration Years'] = (df['Circulation Active Year'] - df['Year Patron Registered'])+1 \n",
"# hier werden der Einfachheit ganze Jahre angenommen\n",
"df[\"Average Checkouts per Year\"] =(df['Total Checkouts']/df['Membership Duration Years'])\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAF2CAYAAACxur8GAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABuZklEQVR4nO3dd3iUVd4+8Du9N0IKvUhHCQJKCwRUOqGEpgvYVpFdwfd1EQuigrqA5WdWUXRR17YIgoIgIoIizQACAgFCCYQktPRMeibJzPP7Y/JMmBdDMHmeOTMn9+e6vI6ZJDN3juPMfJ/TXBRFUUBERERERETkhFxFByAiIiIiIiKqLxa1RERERERE5LRY1BIREREREZHTYlFLRERERERETotFLRERERERETktFrVERERERETktFjUEhERERERkdNyFx1AK/n5JTCbeeQuERERERGRTFxdXRAS4lfr96Upas1mhUUtERERERFRI8Ppx0REREREROS0WNQSERERERGR02JRS0RERERERE6LRS0RERERERE5LRa1RERERERE5LRY1BIREREREZHTYlFLRERERERETotFLRERERERETktFrVERERERETktFjUEhERERERkdNiUUtEREREREROi0WtINu3/yA6gvTWrPmv6AjSy8/PEx2hUUhI2CM6gvT4eqG/1NQU0RGINMHnsv7+/e93RUeQXmLiUdERNMWiVoCtWzfjv//9FD/+uEV0FGmtWvUJfvjhO3z55eeio0grLy8X//u/f0NeHgtbPe3ZsxP//ve72Lt3t+go0uLrhf5SUs7hpZeeQ0oKiwE9sRDQH5/L+luxIh4JCXvw/vvviI4iraNHD+P//b+lOHr0iOgommFRK8Avv/wEANi582fBSeR16NBBAMDhwwcFJ5HXhg1rAQDffvu14CRyS0+/UN2mig0isQsXLB9OOfqinxUr3gYAfPABP6TqhYWAfWzd+h0A4McfNwtOIq/MzEwAQFZWpuAk8srIuAoAyMy8KjiJdljUCmAw5APg1E09+fr62rSkvU6dula3XQQnkZuPj2916yM4CVH9BQcH27SkvaCgYJuW9OHl5W3TkvaqqqpsWtKe+tmtY0d5PsOxqBUgMrIZAKBZs+aCk8jr0qWLADi6pacWLVoCAJo3byk4idzat+8AAGjXroPgJPLq06cvAKB37zsFJ5FX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gA0bNuDgwYNYsmQJAOC9996DoiiYM2fOTf1+bm4xzGZ9/5S9e3dhz56dDb4f67RNDaYTDho0BNHRMQ2+H0fBPtYf+9g+HK2f2ce143O5duxj+9Cin9nHN8bnsv7Yx/przH3s6uqC0FD/Wr/vMCO1WVlZCAsLs34dHh6OxMTEm/79G/2RWgkM9IGHBscRhIZajmrQ4r4CA30QFqbNlvmOgH2sP/axfThaP7OPa8fncu3Yx/ahRT+zj2+Mz2X9sY/1xz6uncOM1L7//vswGo343//9XwDA2rVrceLECbz88ss39fv2GKklIiIiIiIi+6prpFb8GRHVIiMjkZ2dbf06Ozsb4eHhAhMRERERERGRo3OYonbAgAHYt28f8vLyUFZWhm3btmHw4MGiYxEREREREZEDc5g1tREREXjyySdx//33o7KyEpMnT0aPHj1ExyIiIiIiIiIH5jBrahuKa2qJiIiIiIjk4zRraomIiIiIiIj+LBa1RERERERE5LRY1BIREREREZHTYlFLRERERERETotFLRERERERETktFrVERERERETktFjUEhERERERkdNiUUtEREREREROy110AK24urqIjkBEREREREQaq6vWc1EURbFTFiIiIiIiIiJNcfoxEREREREROS0WtUREREREROS0WNQSERERERGR02JRS0RERERERE6LRS0RERERERE5LRa1RERERERE5LRY1BIREREREZHTYlFLRERERERETotFLRERERERETktFrXVvvvuO4wePRrDhw/HqlWr/vBnZs6c+afuMzExEZMmTUJsbCwee+wxZGdnaxHVKRQXF2Ps2LG4dOmS9baEhATExsZi+PDhiI+P/8Pfe+6553D58uU//Xjr1q3Ds88+a/06JycHs2fPxtixYzFt2jQcOXLkz/8RDu7dd9/FmDFjMGbMGLz++uvW2/Xo5/Pnz2P69OkYP348pk2bhlOnTtl8v7i4GPfccw8OHDhQvz/GQdXWx8899xyGDx+O8ePHY/z48di+fft1v/tn+/jcuXO49957MW7cOMycOfO635W1j99++22MHj0aY8aMwSeffGK9XY8+VmVkZODOO++0eX0C5O1j1WuvvWbzOqlHH//222/o27ev9T6fe+45m+/L3MczZ87EmDFjrH/7sWPHANi3n2V/79uxYwfi4uIwatQovPrqq9bb9Xjf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U/nqq6+u+5369HFBQYEycOBApXfv3kpSUpKiKI2jj99++20lKipKeeaZZxSz2axbHx8/flx56KGHFJPJZPP6JHsfz507V0lISLB5ndSrj1944QXlxx9/VBTFMuNg2rRpiqLI38e///67Mn/+fKWwsFDJzc1VxowZo+zdu9fu/Szze9+LL76ovPLKK8pjjz2mjBs3TnnrrbcUs9msy/tedna2MmDAAOX9999Xpk6dqsycOVM5deqUoihyP5dr62M93/cUxTIbbMeOHdavnb2Pf/31V5u/92b6r7i4WOnfv79SVFSkKIqiDB8+XMnIyFDeeOMN5bPPPlMURVGKioqUMWPGKOnp6cp3332nrFixQlEURTEajco999yjHD9+XNm/f7/Su3dvpbCw0Pr3qf8dVq5caa1LVHXVFtu3b1cURVGWLl2qLF26VDEajcrAgQOVc+fOKYpimdHwRyO1kyZNsr5GHTlyRBkyZIhiNBqV2bNnW/9bv/XWW8qHH36onD17VrnvvvuU8vJyRVEU5c0331Tee+89a4abHannSC0sV3xcXFysXyuKYvP1/5WYmIgePXqgZcuWAIBp06Zh//79Nj/j4uKCd955B//+978xYcIEFBUVITg4GB4eHjY/N2nSJGzatAllZWXYv38/7r77buzbtw+JiYmIi4vDxIkTceLECZw7dw5t2rTBM888g3Xr1mHZsmU4evQoSktLrfcVFRUFAOjfvz/+85//YN68eTAYDJgxY0aD+6ih/mwfp6amIjAwED169AAAjBo1Cunp6SgqKrqpx3vuueeQlpaG2NhYfP755+jbt+91fR8XF2e94rVhwwbExcXh2LFjuHr1Ku6//36MHz8eq1atQlpaGlxdXfHee+9h7969ePvtt7FhwwaUlJRY70vN2bFjR1y4cAF//etfsXXrVjz99NM310H1lJycjIcffhhPP/002rZtq2s/K4qC1157DceOHcOCBQtgNpvx/PPP44UXXoC3t3etj+Hs/fx/+7hVq1Z47733EB4eDh8fH8ycORO7du2q9ff/TB8HBgZi7969eOutt/C3v/0NJpOpUfTxE088gX379uHq1atYu3atLn1cVlaGxYsX49VXX4Wra81bn+zP43Xr1qFZs2bo37+/ze16PY9ffvllDB8+HABw33334dy5cygqKpK6jwHg9ttvx+uvv46AgAA0adIEkydPxq5du+zezzK/95lMJuzbtw9LlizBV199hcTERGzYsEGX9z2TyYScnBwEBATgq6++wmOPPYbHH39c+teL2vpYz/e95ORk5OfnY+jQoQDkeE1es2YNHnroIevXN9N/fn5+iImJwfbt23Ho0CG0atUKERERSEhIwJo1azB+/HhMnz4dpaWlSE5OxtixYzFw4EB8+umnePXVV2EwGKw1Qbt27RAQEAAAuPvuuzFnzhy8/PLL6NatG6Kjo20et67aQp2l17FjRxQUFODMmTMIDw/HLbfcAgCYOHHidX9/SUkJ0tPTra9RPXv2RFBQEFJSUjBu3Dh8//33ACyj57GxsThw4ADS0tIwdepUjB8/Hj///LN19gtQU9/Uxf2mfkpykZGROHTokPXr7Oxsm6mz/9f/nTKgKAqqqqqu+zl3d3d88cUXAIDc3FysWLECwcHBNj8zcuRIxMfH48cff8TgwYPh5eUFk8mEBx54wPo/RGFhIdzc3HDixAnMmzcPDz74IEaMGAFXV1frtGQA1v/5e/fuje+//x47d+7Eli1bsGHDBpsNWESIjIy02Sjrz/YxYOlnk8l0U49XWlqKV155Bf7+/gCAMWPGoHXr1jY/07JlSzRv3hzbtm1Dbm4uoqKi8NNPP6FXr1744IMPAABGoxElJSUoKSnB5MmTMW7cONxxxx3o3LmzzYZiat+HhITg+++/x6+//opdu3Zh4sSJ+P77722mkmrl8OHDeOKJJ7BgwQKMGTMGgH79XFVVhWeeeQaZmZn4/PPPERAQgHPnziElJQXPP/88ACA9PR0LFy7EK6+8Yp12Dzh3P/9RH585cwapqakYMWKEtb/c3Wt/Kb3ZPt6yZQtGjRoFFxcXDB48GOXl5fj999+l7uPz58+joqICXbt2hY+PD4YPH44zZ87o0seHDh1Cbm4u/va3vwGAdZrcW2+9JXUfb9myBdnZ2Rg/fjwKCgpQWlqKJUuWYNKkSZr3sdlsxr///W/MmjULbm5u1tszMjKk7mPA8vyqrKy0XjxQ+1OP53Jt/ezm5oaCggJp3/uaNm2K/v37o0mTJgCAe+65B4mJiRg9erTm73shISFwd3fH2LFjAQADBw5EaWkpDh8+LPVzubY+7t69uy7vewDw008/YfTo0davU1JSnLqPKyoqcPDgQSxbtsx6282+DkyaNAnvv/8+WrZsibi4OGtfvvHGG+jevTsAy2ZwQUFB+OKLL/Djjz9i6tSpGDBgAM6ePWutCa69GPDggw9i6NCh+OWXX/DGG28gMTHR+j4IoM7awsvLC4BlsE69YHTt9699DVJd+/1rbzOZTLj77ruxbNkyHDx4EM2aNUNERARMJhNGjRqFhQsXArAUxdc+V250ceNaHKkFMGDAAOzbtw95eXkoKyvDtm3bMHjw4Ot+zs3NDVVVVYiKisKxY8esO2d+9dVX6Nu373U/v2DBAiQmJgKwrJcbOXKkzQgBAPj4+GDw4MF46623rE/gfv36YePGjSgpKUFVVRUef/xx/Pjjjzh48CDuvPNO3HfffWjbti127tz5hy8Qr7/+OjZt2oSJEyfixRdfRFJSUoP7qKGioqJw4cIFpKWlwWQyYfPmzbX2sclkQvv27WEwGKz9t2XLFjRv3vy6iwK1+e9//4s1a9YAAHbv3g2TyYQuXbpc93OTJk3Cq6++ap3THxUVhaNHj1rXaaxYsQKvv/46UlNT4eLigtmzZ6Nv377Yvn37H/b9zz//jPnz52PIkCFYuHAhfH19bdaUaeXq1at4/PHH8eabb1qLLTW/Hv382muvobi4GP/5z3+sV/86dOiAXbt2YePGjdi4cSNuvfVWvPrqqzZvOipn7Ofa+lhRFCxZsgQFBQWorKzEV199hWHDhl33+3+2j//zn/9Yd0Pcv38/QkJCcMcdd0jdx5cuXcLChQtRUVGBiooK/Pzzz+jdu7cufTxo0CDs2LHD2pfh4eFYuXIlunTpInUff/LJJ9i8eTM2btyIJ554AnfddZd17ZXWfezq6ort27fjxx9/BGBZIxUVFYWOHTtK3ccAUFRUhNdffx1GoxHFxcXYsGEDhg0bZtd+9vX1lfq9T92bpLCwECaTCXv27EH37t11ed/z9PTEgAEDrCNKR48ehY+PD3r37i31c7m2PtbrfQ+w9G2fPn2sXzv7Z4szZ86gbdu28PX1td52s/3Xp08fZGRk4MCBA7jnnnsAWGqC1atXA7BcjB03bhyuXr2KX3/9FdOmTcO4ceNgNBpx+vTpP7yYMGXKFJSUlODBBx/Egw8+eF1NcLO1hapz587IycnB6dOnAcD6/8i1/P390bJlS2zbtg2A5b9xTk4OOnbsCE9PTwwaNAhLliyx/ndT/5vk5uZCURQsWrQIn3322Q37+Y9wpBZAREQEnnzySdx///2orKzE5MmTrVMRrnX33Xdj/PjxWL9+PV5++WXMmTMHlZWVaN68Of75z39e9/OLFi3CSy+9hLKyMnTu3PkPfwawXEn9/fffrcPrd911F06fPo2pU6fCZDJh0KBBmDhxIrKysjBnzhzExsYCAG699dbrjqQALIve582bh/Xr18PNzQ2vvfZaQ7pHE15eXli2bBnmzp0Lo9GImJgYjBw58rqfGzJkCGbNmoWPPvoI8fHxeOWVV1BWVoagoKBat+n/I7NmzcK8efOwceNG+Pn54d13373uggIADB8+HC+88ALGjx8PwLI50JIlS/C///u/MJvNiIiIwBtvvIHAwEB07drVOpIWHR2Nw4cPX3d/gwcPxrZt2zBmzBh4eXlh3Lhxf7jJQUN9/PHHMBqNNlcC7733Xtx3332a93NeXh5WrVqFli1bWjdKA4CNGzfedF5n7Ocb9fGsWbNw3333oaqqCsOHD7dezb/Wn30uL1u2DC+88ALee+89BAQE4J133vlTeZ2xj2NiYpCYmIgJEybAzc0Nw4cPt15A0KOPG8oZ+7g2Xbp00aWPX3vtNevzuEmTJjZHYd0MZ+3joUOH4tixY5gwYQLMZjP+8pe/4Pbbbwegz3O5tn6W+b0vKioKjzzyCP7yl7+gsrISAwcOxKRJk+Dq6qrL54t//vOfePHFF/Hll1/C3d0d8fHxf9iXtZGtj/V6Tb548SIiIiLqldcR+/jixYuIjIy0ue1mX28BYNiwYTAYDPD09AQAzJkzB4sWLcLYsWNhMpkwf/58tG7dGg888AAWLVqElStXwt/fH7fffjsuXbp03cyMf/zjH3j22Wfh7u4OX19fm2OaAGD06NE3VVuoPDw88NZbb2H+/Plwd3dHt27d/vDn3njjDSxatAjLly+Hh4cHli9fbv2bxo8fj02bNllHrrt06YI5c+bggQcegNlsRteuXa2btP0ZLsofjRGT3ZhMJsTHxyM0NNRm/j3pT1EU7N69G6tXr7ZOVSHtsZ/1xz7WH/tYf+xj+2A/6499rD/Z+lhRFFRWVuKhhx7CggULrNON6eZxpFawSZMmISQkBO+//77oKI3OkiVL8Msvv+DDDz8UHUVq7Gf9sY/1xz7WH/vYPtjP+mMf60+2Ps7OzsaYMWMwZcoUFrT1xJFaIiIiIiIiclrcKIqIiIiIiIicFotaIiIiIiIiclosaomIiIiIiMhpcaMoIiIiDVRWVmLo0KHo0qULPvroI83u98CBA3j00UfRrl07620lJSXo0KEDli5dipCQEM0ei4iIyBlxpJaIiEgD27dvR5cuXXDixAmcP39e0/tu3bo1Nm7caP3nxx9/hKurK/7zn/9o+jhERETOiCO1REREGli9ejVGjx6N1q1b47PPPsPLL78MAFi5ciW+/vpr+Pn5oU+fPvj555+xY8cOVFRU4M0338TBgwdhMpnQrVs3LFy4EP7+/nU+VnFxMfLy8tCrVy8AwNGjR/HGG2+goqIC2dnZGDBgAJYsWYJLly7hwQcfRExMDI4dO4bCwkLMnz8fw4YNQ1lZGV566SUcO3YMAQEB6NChAwBg2bJlyMzMxMsvv4yrV6+isrISY8aMwezZs/XrPCIiogbgSC0REVEDnTt3DkeOHMHIkSMxYcIEbNy4Efn5+dizZw/Wr1+Pr7/+GuvXr0dJSYn1d1auXAk3NzesX78emzZtQnh4ON58880/vP/09HSMHz8eY8aMQf/+/fHggw/irrvuwgMPPAAA+Pzzz/HEE09g3bp1+P7777Fjxw6cOHECAHDx4kVER0fj66+/xrx587BkyRIAwIoVK2AymfDDDz/g008/RVJSkvXx5s+fj0mTJlmzJyQkYMuWLXp1HxERUYNwpJaIiKiBVq9ejaFDhyIkJAQhISFo2bIl1q5di+zsbIwcORKBgYEAgOnTp2P//v0AgJ07d6KoqAgJCQkALGtyQ0ND//D+1enHAPDNN98gPj4eo0aNgoeHBwDL6Oru3bvxwQcfICUlBUajEaWlpQgODoaHhwdiYmIAAN26dYPBYAAA7Nq1C8899xxcXV3h7++PiRMn4syZMygtLcXBgwdRUFCAt99+GwBQWlqK06dPY/To0fp0IBERUQOwqCUiImqA0tJSbNy4EZ6enrjrrrsAWKYH//e//8WYMWOgKIr1Z93c3Kz/bjabsWDBAmvBWVJSAqPRWOfjTZo0CceOHcP//M//YO3atXB3d8eMGTPQuXNnDBo0CKNGjcKxY8esj+vh4QFXV8vELBcXF+v9uLu722RTf8ZsNkNRFKxZswY+Pj4AgLy8PHh5edWrf4iIiPTG6cdEREQN8N133yE4OBh79uzBjh07sGPHDvz0008oLS1F9+7dsW3bNhQVFQEAvv76a+vvRUdHY9WqVaioqIDZbMYLL7yAt95666Ye86mnnsLVq1exatUqFBYW4vjx43jqqacwfPhwZGRkID09HWaz+Yb3ERMTg2+++QZmsxllZWXYvHkzXFxc4O/vj549e+KTTz4BABQWFuK+++7Dzz//XM8eIiIi0heLWiIiogZYvXo1HnroIZtR2MDAQMycOROffvoppk6dimnTpiEuLg5FRUXW0c+///3vaNGiBSZOnIjRo0dDURQ8++yzN/WYgYGBeOqpp7B8+XJUVFRg1qxZmDhxIsaOHYuVK1eiV69eSEtLu+F9PPbYY/Dy8kJsbCweeughhIaGwtvbGwDw5ptv4tixY4iNjcWUKVMwduxYjBs3rp49REREpC8X5dq5R0RERKSZ48eP48iRI7j//vsBAJ988gmOHTuGf/3rX2KDAfj+++/h7++PmJgYmM1mzJ07FwMHDsRf/vIX0dGIiIj+FBa1REREOikuLsaCBQuQkpICFxcXNGvWDK+88goiIiJER8PZs2fx4osvoqysDJWVlejbty8WLFhg3XyKiIjIWbCoJSIiIiIiIqfFNbVERERERETktFjUEhERERERkdNiUUtEREREREROi0UtEREREREROS0WtUREREREROS0WNQSERERERGR0/r/dmxGNY55eKgAAAAASUVORK5CYII=\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline\n",
"sns.set()\n",
"plt.figure(figsize=(16, 6))\n",
"my_order =['0 to 9 years', '10 to 19 years', '20 to 24 years', '25 to 34 years', '35 to 44 years', '45 to 54 years', '55 to 59 years', '60 to 64 years', '65 to 74 years', '75 years and over']\n",
"\n",
"plt = sns.boxplot(y='Average Checkouts per Year', x='Age Range', data=df[df['Average Checkouts per Year']"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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U/fu3dWzZ08dPHhQkrR582aFhIQoIiListt13759Gjx4sEJDQ9W3b1+lp6crJydHHTt2VHFxsSTpxx9/VFhYmCRp5cqV6tGjh8LDwxUTEyO73S6p5OfU88tdtQoOWqqsN954w8THx7umlyxZYmJjY0vNd/6MjuPHj5tOnTq5EtK33nrLjBkzpsS8TqfTdO7c2Xz55ZfGGGOWLl1q/vCHP5ijR4+WmG/gwIEmNTXVGGNMdHS0WbNmjdm0aZMZM2aMOXv2rHE4HObZZ581K1euNPv37zejR482DofDGHMuaX3nnXdctZ1PV1977TXz1ltvGWPOpeRvv/329W2gG+TC1PnTTz8148ePdz321VdfmWHDhl12Gbvdbjp37mzS0tKMMcYkJyebiIiIyz7XJ598UuKve88995xJSEgwxhjzww8/mFatWplVq1aVWGbOnDnmr3/9qzHGmBUrVphJkyaZ7OxsExYWZk6ePGmMMWbx4sUmJibGOBwOExkZ6UqAly5d6jqjZ9CgQWbu3LnGmHN/CX7qqaeMMefOLIqKiirj1rpx9u3bZx588EGzb98+t/fFGGMmT55soqOjjTHGHDp0yPTp08cUFhaaQYMGXfIvCPRlnzlw4IB5+umnTWZmpikoKDCDBw82H3/8callrqUvp06dMh07djRt2rQx//nPf4wx9OVy5syZY1q1amWef/5543Q63daX7777zgwbNsw4HI4S75v0pbQxY8aY1NTUEu/57urLiy++aNauXWuMOXcGVN++fY0x9OVi33zzjYmKijKnT5822dnZJiQkxGzevPmG94XjfkmTJk0y06ZNMyNGjDBhYWEmPj7eOJ1Otxz3s7KyTIcOHcz8+fNNnz59zODBg83u3buNMewvF7tcX9x53Dfm3Jm2GzdudE3fjH356quvSmyjsmzzvLw80759e5Obm2uMMSYwMNAcPXrUzJ492/ztb38zxhiTm5trQkJCzIEDB8ynn35qEhMTjTHG2O1289hjj5nvvvvObN261bRp08acPn3aGHNum5zv3YIFC1yfL8/7tc+I69evN8YYM2PGDDNjxgxjt9tNx44dzZ49e4wx586wutQZHT179nS9f3777bfm4YcfNna73YwcOdL17yM+Pt689dZb5scffzT9+/c3Z86cMcYYExcXZ+bNm+eq4XrPAuKMjmvkdDrl4eHhmjbG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09NTgYGBriDKHX25XjdLXy6nefPmbunLq6++6tpf6tWrV+Lrn8viZulL586dlZaWpu7du8vpdGrAgAG6//77Jblnf7lcXzjul9SqVSs9+eSTGjBggIqLi9WxY0f17NlT1apVc8vvY6+88oomTZqkv//977LZbEpISLjk9r8c+lLNbceXgwcPqkGDBtdUr1X6cvDgQTVs2LDEWFmPHZL0+OOP6+TJk6pevbokafTo0XrppZfUrVs3ORwORUVF6Y477tCQIUP00ksvacGCBfLx8dH999+vX375pdTZZc8++6yio6Nls9lUs2bNEl8zLEldu3Yt02fE87y8vBQfH6+oqCjZbDbdd999l5xv9uzZeumll/Taa6/Jy8tLr732mus1hYeHa9WqVa4zXJo3b67Ro0dryJAhcjqduvfee103HC4PHuZS55igUnM4HEpISFD9+vVLXAeGyscYoy+++EKLFy92nYKHikdfKif6UjnRl8qJvlRO9KVyoi+VE305tw2Ki4s1bNgwxcTEuC5VwfXjjI4qqGfPnqpbt67mz59f0aXgV0yfPl2fffaZ3nrrrYouBRegL5UTfamc6EvlRF8qJ/pSOdGXyom+nLuHTUhIiHr37k3IUc44owMAAAAAAFgGNyMFAAAAAACWQdABAAAAAAAsg6ADAAAAAABYBjcjBQAAblNcXKzOnTurefPmevvtt8ttvdu2bdNTTz2lO++80zWWn5+vu+++WzNmzFDdunXL7bkAAEDVwhkdAADAbdavX6/mzZtr165d+vnnn8t13XfccYeSkpJc/61du1bVqlXTu+++W67PAwAAqhbO6AAAAG6zePFide3aVXfccYf+9re/aerUqZKkBQsWaNmyZbr11lvVtm1bbdiwQRs3blRRUZHi4uK0fft2ORwO3XfffYqNjZWPj8+vPldeXp5OnDihP/3pT5KknTt3avbs2SoqKlJWVpY6dOig6dOn65dfftHQoUMVEBCgtLQ0nT59WlFRUXr88cdVWFioyZMnKy0tTbVq1dLdd98tSZo5c6YyMzM1depUHTlyRMXFxQoJCdHIkSPdt/EAAMA14YwOAADgFnv27NG3336r4OBgde/eXUlJScrJydGXX36p5cuXa9myZVq+fLny8/NdyyxYsECenp5avny5Vq1aJT8/P8XFxV1y/QcOHFB4eLhCQkLUvn17DR06VI888oiGDBkiSXr//fc1duxYLV26VGvWrNHGjRu1a9cuSdLBgwfVqVMnLVu2TOPHj9f06dMlSYmJiXI4HPrHP/6h9957T//5z39czxcVFaWePXu6ak9NTVVycrK7Nh8AALhGnNEBAADcYvHixercubPq1q2runXr6vbbb9eSJUuUlZWl4OBg1a5dW5I0cOBAbd26VZL0+eefKzc3V6mpqZLO3eOjfv36l1z/+UtXJOmTTz5RQkKCunTpIi8vL0nnzsL44osv9MYbb2jv3r2y2+0qKChQnTp15OXlpYCAAEnSfffdp5MnT0qSNm3apBdeeEHVqlWTj4+PevTooR9++EEFBQXavn27Tp06pTlz5kiSCgoK9P3336tr167u2YAAAOCaEHQAAIByV1BQoKSkJFWvXl2PPPKIpHOXlnzwwQcKCQmRMcY1r6enp+v/nU6nYmJiXCFEfn6+7Hb7rz5fz549lZaWpv/5n//RkiVLZLPZNGjQIDVr1kwPPfSQunTporS0NNfzenl5qVq1cye2enh4uNZjs9lK1HZ+HqfTKWOMPvroI9WoUUOSdOLECXl7e1/T9gEAAO7DpSsAAKDcffrpp6pTp46+/PJLbdy4URs3btQ///lPFRQUqEWLFlq3bp1yc3MlScuWLXMt16lTJ3344YcqKiqS0+nUiy++qPj4+DI953PPPacjR47oww8/1OnTp/Xdd9/pueeeU2BgoI4ePaoDBw7I6XRecR0BAQH65JNP5HQ6VVhYqNWrV8vDw0M+Pj5q3bq1Fi5cKEk6ffq0+vfvrw0bNlzjFgIAAO5C0AEAAMrd4sWLNWzYsBJna9SuXVuDBw/We++9pz59+qhv376KiIhQbm6u6yyJp59+Wo0bN1aPHj3UtWtXGWMUHR1dpuesXbu2nnvuOb322msqKirS8OHD1aNHD3Xr1k0LFizQn/70J2VkZFxxHSNGjJC3t7dCQ0M1bNgw1a9fX7fccoskKS4uTmlpaQoNDVXv3r3VrVs3hYWFXeMWAgAA7uJhLjw/EwAAwM2+++47ffvtt4qMjJQkLVy4UGlpafrrX/9asYVJWrNmjXx8fBQQECCn06kxY8aoY8eOGjBgQEWXBgAAyoigAwAA3FB5eXmKiYnR3r175eHhoUaNGmnatGlq0KBBRZemH3/8UZMmTVJhYaGKi4vVrl07xcTEuG5wCgAAKj+CDgAAAAAAYBncowMAAAAAAFgGQQcAAAAAALAMgg4AAAAAAGAZBB0AAAAAAMAyCDoAAAAAAIBlEHQAAAAAAADL+H8tmhHJIRHhoQAAAABJRU5ErkJggg==\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"my_order =['0 to 9 years', '10 to 19 years', '20 to 24 years', '25 to 34 years', '35 to 44 years', '45 to 54 years', '55 to 59 years', '60 to 64 years', '65 to 74 years', '75 years and over']\n",
"sns.catplot(x='Age Range', kind=\"count\", data=mission_district, order=my_order, aspect=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Die obere Grafik beantwortet die Frage schon ganz gut, dennoch können wir uns auch die genauen Werte über eine Kreuztabelle ausgeben lassen:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
\n",
"
\n",
"
Home Library Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Mission
\n",
"
0.108568
\n",
"
0.158114
\n",
"
0.065982
\n",
"
0.238724
\n",
"
0.185325
\n",
"
0.116905
\n",
"
0.039519
\n",
"
0.031733
\n",
"
0.040659
\n",
"
0.014471
\n",
"
\n",
"
\n",
"
All
\n",
"
0.108568
\n",
"
0.158114
\n",
"
0.065982
\n",
"
0.238724
\n",
"
0.185325
\n",
"
0.116905
\n",
"
0.039519
\n",
"
0.031733
\n",
"
0.040659
\n",
"
0.014471
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Home Library Definition \n",
"Mission 0.108568 0.158114 0.065982 \n",
"All 0.108568 0.158114 0.065982 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Home Library Definition \n",
"Mission 0.238724 0.185325 0.116905 \n",
"All 0.238724 0.185325 0.116905 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Home Library Definition \n",
"Mission 0.039519 0.031733 0.040659 \n",
"All 0.039519 0.031733 0.040659 \n",
"\n",
"Age Range 75 years and over \n",
"Home Library Definition \n",
"Mission 0.014471 \n",
"All 0.014471 "
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(\n",
" mission_district['Home Library Definition'],\n",
" mission_district['Age Range'],\n",
" margins=True, normalize=0\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Antwort auf Frage 6\n",
"Die Verteilung der Altersgruppen im Mission District ist wie folgt:\n",
"- ca. 11% der Nutzer sind zwischen 0 und 9 Jahren,\n",
"- ca. 16% der Nutzer sind zwischen 10 und 19 Jahren,\n",
" \n",
"...\n",
"\n",
"- ca. 4% der Nutzer sind zwischen 65 und 74 Jahren,\n",
"- ca. 1% der Nutzer sind 75 Jahre und älter.\n",
"\n",
"\n",
"----"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Frage 7: Erklärung von Normalisierung von Kreuztabellen (Kapitel 3 im Skript)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Wir nutzen das Beispiel von oben (Alterskategorien und Benachrichtigungsart aus Frage 3).\n",
"Zuerst einmal eine nicht normalisierte Kreuztabelle:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
All
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
email
\n",
"
27475
\n",
"
38055
\n",
"
23809
\n",
"
79351
\n",
"
57698
\n",
"
41450
\n",
"
15328
\n",
"
13805
\n",
"
20299
\n",
"
6508
\n",
"
323778
\n",
"
\n",
"
\n",
"
print
\n",
"
4135
\n",
"
5831
\n",
"
2128
\n",
"
4697
\n",
"
3193
\n",
"
3285
\n",
"
1635
\n",
"
1691
\n",
"
2698
\n",
"
2023
\n",
"
31316
\n",
"
\n",
"
\n",
"
All
\n",
"
31610
\n",
"
43886
\n",
"
25937
\n",
"
84048
\n",
"
60891
\n",
"
44735
\n",
"
16963
\n",
"
15496
\n",
"
22997
\n",
"
8531
\n",
"
355094
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"email 27475 38055 23809 \n",
"print 4135 5831 2128 \n",
"All 31610 43886 25937 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"email 79351 57698 41450 \n",
"print 4697 3193 3285 \n",
"All 84048 60891 44735 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"email 15328 13805 20299 \n",
"print 1635 1691 2698 \n",
"All 16963 15496 22997 \n",
"\n",
"Age Range 75 years and over All \n",
"Notice Preference Definition \n",
"email 6508 323778 \n",
"print 2023 31316 \n",
"All 8531 355094 "
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Nun möchten wir das prozentual betrachten:\n",
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True\n",
")\n",
"# die Reihenfolge der betrachteten Spalten 'Notice Preference Definition' und 'Age Range' spielt keine Rolle, \n",
"# probiere es ruhig aus\""
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
email
\n",
"
0.084858
\n",
"
0.117534
\n",
"
0.073535
\n",
"
0.245078
\n",
"
0.178202
\n",
"
0.128020
\n",
"
0.047341
\n",
"
0.042637
\n",
"
0.062694
\n",
"
0.020100
\n",
"
\n",
"
\n",
"
print
\n",
"
0.132041
\n",
"
0.186199
\n",
"
0.067952
\n",
"
0.149987
\n",
"
0.101961
\n",
"
0.104898
\n",
"
0.052210
\n",
"
0.053998
\n",
"
0.086154
\n",
"
0.064600
\n",
"
\n",
"
\n",
"
All
\n",
"
0.089019
\n",
"
0.123590
\n",
"
0.073043
\n",
"
0.236692
\n",
"
0.171479
\n",
"
0.125981
\n",
"
0.047770
\n",
"
0.043639
\n",
"
0.064763
\n",
"
0.024025
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"email 0.084858 0.117534 0.073535 \n",
"print 0.132041 0.186199 0.067952 \n",
"All 0.089019 0.123590 0.073043 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"email 0.245078 0.178202 0.128020 \n",
"print 0.149987 0.101961 0.104898 \n",
"All 0.236692 0.171479 0.125981 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"email 0.047341 0.042637 0.062694 \n",
"print 0.052210 0.053998 0.086154 \n",
"All 0.047770 0.043639 0.064763 \n",
"\n",
"Age Range 75 years and over \n",
"Notice Preference Definition \n",
"email 0.020100 \n",
"print 0.064600 \n",
"All 0.024025 "
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Nun normalisieren wir nach Zeilen (normalize=0)\n",
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True, normalize=0\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Hier sehen wir, dass jede Zeile in der Summe 1 ergibt. D.h. wir können die Tabelle prozentual nach Zeilen interpretieren.\n",
"Also z.B. erste Zeile: Von allen Nutzern, die per Mail informiert werden möchten, befinden sich ca. 13% (0.128020 von 1) in der Altersgruppe 45 bis 54 Jahre.\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
Age Range
\n",
"
0 to 9 years
\n",
"
10 to 19 years
\n",
"
20 to 24 years
\n",
"
25 to 34 years
\n",
"
35 to 44 years
\n",
"
45 to 54 years
\n",
"
55 to 59 years
\n",
"
60 to 64 years
\n",
"
65 to 74 years
\n",
"
75 years and over
\n",
"
All
\n",
"
\n",
"
\n",
"
Notice Preference Definition
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
email
\n",
"
0.869187
\n",
"
0.867133
\n",
"
0.917955
\n",
"
0.944115
\n",
"
0.947562
\n",
"
0.926568
\n",
"
0.903614
\n",
"
0.890875
\n",
"
0.88268
\n",
"
0.762865
\n",
"
0.911809
\n",
"
\n",
"
\n",
"
print
\n",
"
0.130813
\n",
"
0.132867
\n",
"
0.082045
\n",
"
0.055885
\n",
"
0.052438
\n",
"
0.073432
\n",
"
0.096386
\n",
"
0.109125
\n",
"
0.11732
\n",
"
0.237135
\n",
"
0.088191
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Age Range 0 to 9 years 10 to 19 years 20 to 24 years \\\n",
"Notice Preference Definition \n",
"email 0.869187 0.867133 0.917955 \n",
"print 0.130813 0.132867 0.082045 \n",
"\n",
"Age Range 25 to 34 years 35 to 44 years 45 to 54 years \\\n",
"Notice Preference Definition \n",
"email 0.944115 0.947562 0.926568 \n",
"print 0.055885 0.052438 0.073432 \n",
"\n",
"Age Range 55 to 59 years 60 to 64 years 65 to 74 years \\\n",
"Notice Preference Definition \n",
"email 0.903614 0.890875 0.88268 \n",
"print 0.096386 0.109125 0.11732 \n",
"\n",
"Age Range 75 years and over All \n",
"Notice Preference Definition \n",
"email 0.762865 0.911809 \n",
"print 0.237135 0.088191 "
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Als Vergleich normalisieren wir nach Spalten (normalize=1)\n",
"pd.crosstab(\n",
" benachrichtigung['Notice Preference Definition'],\n",
" benachrichtigung['Age Range'],\n",
" margins=True, normalize=1\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Hier sehen wir, dass jede Spalte in der Summe 1 ergibt. D.h. wir können die Tabelle prozentual nach Spalten interpretieren.\n",
"Also z.B. erste Spalte: Von allen Nutzern, die zwischen 0 und Jahren sind, möchten sich ca. 13% (0.130813 von 1) per Post informieren lassen.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}