{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Päivitetty 2023-10-23 / Aki Taanila\n"
]
}
],
"source": [
"from datetime import datetime\n",
"print(f'Päivitetty {datetime.now().date()} / Aki Taanila')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Tilastollisia tunnuslukuja\n",
"\n",
"Määrällisille muuttujille kannattaa laskea \n",
"\n",
"* arvojen lukumäärä\n",
"* keskiarvo\n",
"* keskihajonta\n",
"* viiden luvun yhteenveto (pienin, alaneljännes, mediaani, yläneljännes, suurin)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"sns.set_style('whitegrid')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" nro | \n",
" sukup | \n",
" ikä | \n",
" perhe | \n",
" koulutus | \n",
" palveluv | \n",
" palkka | \n",
" johto | \n",
" työtov | \n",
" työymp | \n",
" palkkat | \n",
" työteht | \n",
" työterv | \n",
" lomaosa | \n",
" kuntosa | \n",
" hieroja | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 38 | \n",
" 1 | \n",
" 1.0 | \n",
" 22.0 | \n",
" 3587 | \n",
" 3 | \n",
" 3.0 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 29 | \n",
" 2 | \n",
" 2.0 | \n",
" 10.0 | \n",
" 2963 | \n",
" 1 | \n",
" 5.0 | \n",
" 2 | \n",
" 1 | \n",
" 3 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 1 | \n",
" 30 | \n",
" 1 | \n",
" 1.0 | \n",
" 7.0 | \n",
" 1989 | \n",
" 3 | \n",
" 4.0 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 36 | \n",
" 2 | \n",
" 1.0 | \n",
" 14.0 | \n",
" 2144 | \n",
" 3 | \n",
" 3.0 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 1 | \n",
" 24 | \n",
" 1 | \n",
" 2.0 | \n",
" 4.0 | \n",
" 2183 | \n",
" 2 | \n",
" 3.0 | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 77 | \n",
" 78 | \n",
" 1 | \n",
" 22 | \n",
" 1 | \n",
" 3.0 | \n",
" 0.0 | \n",
" 1598 | \n",
" 4 | \n",
" 4.0 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" NaN | \n",
" 1.0 | \n",
" 1.0 | \n",
" NaN | \n",
"
\n",
" \n",
" 78 | \n",
" 79 | \n",
" 1 | \n",
" 33 | \n",
" 1 | \n",
" 1.0 | \n",
" 2.0 | \n",
" 1638 | \n",
" 1 | \n",
" 3.0 | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 79 | \n",
" 80 | \n",
" 1 | \n",
" 27 | \n",
" 1 | \n",
" 2.0 | \n",
" 7.0 | \n",
" 2612 | \n",
" 3 | \n",
" 4.0 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 1.0 | \n",
" NaN | \n",
" 1.0 | \n",
" NaN | \n",
"
\n",
" \n",
" 80 | \n",
" 81 | \n",
" 1 | \n",
" 35 | \n",
" 2 | \n",
" 2.0 | \n",
" 16.0 | \n",
" 2808 | \n",
" 3 | \n",
" 4.0 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 81 | \n",
" 82 | \n",
" 2 | \n",
" 35 | \n",
" 2 | \n",
" 3.0 | \n",
" 15.0 | \n",
" 2183 | \n",
" 3 | \n",
" 4.0 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
82 rows × 16 columns
\n",
"
"
],
"text/plain": [
" nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp \\\n",
"0 1 1 38 1 1.0 22.0 3587 3 3.0 3 \n",
"1 2 1 29 2 2.0 10.0 2963 1 5.0 2 \n",
"2 3 1 30 1 1.0 7.0 1989 3 4.0 1 \n",
"3 4 1 36 2 1.0 14.0 2144 3 3.0 3 \n",
"4 5 1 24 1 2.0 4.0 2183 2 3.0 2 \n",
".. ... ... ... ... ... ... ... ... ... ... \n",
"77 78 1 22 1 3.0 0.0 1598 4 4.0 4 \n",
"78 79 1 33 1 1.0 2.0 1638 1 3.0 2 \n",
"79 80 1 27 1 2.0 7.0 2612 3 4.0 3 \n",
"80 81 1 35 2 2.0 16.0 2808 3 4.0 3 \n",
"81 82 2 35 2 3.0 15.0 2183 3 4.0 4 \n",
"\n",
" palkkat työteht työterv lomaosa kuntosa hieroja \n",
"0 3 3 NaN NaN NaN NaN \n",
"1 1 3 NaN NaN NaN NaN \n",
"2 1 3 1.0 NaN NaN NaN \n",
"3 3 3 1.0 NaN NaN NaN \n",
"4 1 2 1.0 NaN NaN NaN \n",
".. ... ... ... ... ... ... \n",
"77 3 4 NaN 1.0 1.0 NaN \n",
"78 1 2 1.0 NaN NaN NaN \n",
"79 3 3 1.0 NaN 1.0 NaN \n",
"80 3 3 NaN NaN NaN NaN \n",
"81 3 4 1.0 NaN NaN NaN \n",
"\n",
"[82 rows x 16 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_excel('https://taanila.fi/data1.xlsx')\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" nro | \n",
" sukup | \n",
" ikä | \n",
" perhe | \n",
" koulutus | \n",
" palveluvuodet | \n",
" palkka | \n",
" johtoon | \n",
" työtovereihin | \n",
" työympäristöön | \n",
" palkkaan | \n",
" työtehtäviin | \n",
" työterv | \n",
" lomaosa | \n",
" kuntosa | \n",
" hieroja | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 38 | \n",
" 1 | \n",
" 1.0 | \n",
" 22.0 | \n",
" 3587 | \n",
" 3 | \n",
" 3.0 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 29 | \n",
" 2 | \n",
" 2.0 | \n",
" 10.0 | \n",
" 2963 | \n",
" 1 | \n",
" 5.0 | \n",
" 2 | \n",
" 1 | \n",
" 3 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 1 | \n",
" 30 | \n",
" 1 | \n",
" 1.0 | \n",
" 7.0 | \n",
" 1989 | \n",
" 3 | \n",
" 4.0 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 36 | \n",
" 2 | \n",
" 1.0 | \n",
" 14.0 | \n",
" 2144 | \n",
" 3 | \n",
" 3.0 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 1 | \n",
" 24 | \n",
" 1 | \n",
" 2.0 | \n",
" 4.0 | \n",
" 2183 | \n",
" 2 | \n",
" 3.0 | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 77 | \n",
" 78 | \n",
" 1 | \n",
" 22 | \n",
" 1 | \n",
" 3.0 | \n",
" 0.0 | \n",
" 1598 | \n",
" 4 | \n",
" 4.0 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" NaN | \n",
" 1.0 | \n",
" 1.0 | \n",
" NaN | \n",
"
\n",
" \n",
" 78 | \n",
" 79 | \n",
" 1 | \n",
" 33 | \n",
" 1 | \n",
" 1.0 | \n",
" 2.0 | \n",
" 1638 | \n",
" 1 | \n",
" 3.0 | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 79 | \n",
" 80 | \n",
" 1 | \n",
" 27 | \n",
" 1 | \n",
" 2.0 | \n",
" 7.0 | \n",
" 2612 | \n",
" 3 | \n",
" 4.0 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 1.0 | \n",
" NaN | \n",
" 1.0 | \n",
" NaN | \n",
"
\n",
" \n",
" 80 | \n",
" 81 | \n",
" 1 | \n",
" 35 | \n",
" 2 | \n",
" 2.0 | \n",
" 16.0 | \n",
" 2808 | \n",
" 3 | \n",
" 4.0 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 81 | \n",
" 82 | \n",
" 2 | \n",
" 35 | \n",
" 2 | \n",
" 3.0 | \n",
" 15.0 | \n",
" 2183 | \n",
" 3 | \n",
" 4.0 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 1.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
82 rows × 16 columns
\n",
"
"
],
"text/plain": [
" nro sukup ikä perhe koulutus palveluvuodet palkka johtoon \\\n",
"0 1 1 38 1 1.0 22.0 3587 3 \n",
"1 2 1 29 2 2.0 10.0 2963 1 \n",
"2 3 1 30 1 1.0 7.0 1989 3 \n",
"3 4 1 36 2 1.0 14.0 2144 3 \n",
"4 5 1 24 1 2.0 4.0 2183 2 \n",
".. ... ... ... ... ... ... ... ... \n",
"77 78 1 22 1 3.0 0.0 1598 4 \n",
"78 79 1 33 1 1.0 2.0 1638 1 \n",
"79 80 1 27 1 2.0 7.0 2612 3 \n",
"80 81 1 35 2 2.0 16.0 2808 3 \n",
"81 82 2 35 2 3.0 15.0 2183 3 \n",
"\n",
" työtovereihin työympäristöön palkkaan työtehtäviin työterv lomaosa \\\n",
"0 3.0 3 3 3 NaN NaN \n",
"1 5.0 2 1 3 NaN NaN \n",
"2 4.0 1 1 3 1.0 NaN \n",
"3 3.0 3 3 3 1.0 NaN \n",
"4 3.0 2 1 2 1.0 NaN \n",
".. ... ... ... ... ... ... \n",
"77 4.0 4 3 4 NaN 1.0 \n",
"78 3.0 2 1 2 1.0 NaN \n",
"79 4.0 3 3 3 1.0 NaN \n",
"80 4.0 3 3 3 NaN NaN \n",
"81 4.0 4 3 4 1.0 NaN \n",
"\n",
" kuntosa hieroja \n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN \n",
".. ... ... \n",
"77 1.0 NaN \n",
"78 NaN NaN \n",
"79 1.0 NaN \n",
"80 NaN NaN \n",
"81 NaN NaN \n",
"\n",
"[82 rows x 16 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Korvaan joidenkin muuttujien nimet havainnollisemmilla nimillä\n",
"df = df.rename(columns={'palveluv':'palveluvuodet', 'johto':'johtoon', 'työtov':'työtovereihin',\n",
" 'työymp':'työympäristöön', 'palkkat':'palkkaan', 'työteht':'työtehtäviin'})\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Describe-funktio laskee tilastolliset tunnusluvut\n",
"\n",
"**Describe**-funktio laskee kaikille numeerisille muuttujille tilastolliset tunnusluvut\n",
"* lukumäärä (count) ilmoittaa arvojen lukumäärän; rivejä, joilta arvo puuttuu ei lasketa tähän mukaan\n",
"* keskiarvo (mean)\n",
"* keskihajonta (std); kuvaa arvojen vaihtelun määrää\n",
"* pienin (min)\n",
"* alaneljännes (25%); neljäsosa (25 %) havainnoista on korkeintaan tämän suuruisia\n",
"* mediaani (50%); puolet (50 %) havainnoista on korkeintaan tämän suuruisia\n",
"* yläneljännes (75%); kolme neljäsosaa (75 %) havainnoista on korkeintaan tämän suuruisia\n",
"* suurin (max)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" nro | \n",
" sukup | \n",
" ikä | \n",
" perhe | \n",
" koulutus | \n",
" palveluvuodet | \n",
" palkka | \n",
" johtoon | \n",
" työtovereihin | \n",
" työympäristöön | \n",
" palkkaan | \n",
" työtehtäviin | \n",
" työterv | \n",
" lomaosa | \n",
" kuntosa | \n",
" hieroja | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 82.000000 | \n",
" 82.000000 | \n",
" 82.000000 | \n",
" 82.000000 | \n",
" 81.000000 | \n",
" 80.000000 | \n",
" 82.000000 | \n",
" 82.000000 | \n",
" 81.000000 | \n",
" 82.000000 | \n",
" 82.000000 | \n",
" 82.000000 | \n",
" 47.0 | \n",
" 20.0 | \n",
" 9.0 | \n",
" 22.0 | \n",
"
\n",
" \n",
" mean | \n",
" 41.500000 | \n",
" 1.231707 | \n",
" 37.951220 | \n",
" 1.621951 | \n",
" 1.987654 | \n",
" 12.175000 | \n",
" 2563.878049 | \n",
" 3.060976 | \n",
" 4.061728 | \n",
" 3.219512 | \n",
" 2.109756 | \n",
" 3.195122 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" std | \n",
" 23.815261 | \n",
" 0.424519 | \n",
" 9.773866 | \n",
" 0.487884 | \n",
" 0.844006 | \n",
" 8.807038 | \n",
" 849.350302 | \n",
" 1.058155 | \n",
" 0.826826 | \n",
" 1.154961 | \n",
" 1.111179 | \n",
" 1.047502 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" min | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 20.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 1521.000000 | \n",
" 1.000000 | \n",
" 2.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" 25% | \n",
" 21.250000 | \n",
" 1.000000 | \n",
" 31.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 3.750000 | \n",
" 2027.000000 | \n",
" 2.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" 50% | \n",
" 41.500000 | \n",
" 1.000000 | \n",
" 37.500000 | \n",
" 2.000000 | \n",
" 2.000000 | \n",
" 12.500000 | \n",
" 2320.000000 | \n",
" 3.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 2.000000 | \n",
" 3.000000 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" 75% | \n",
" 61.750000 | \n",
" 1.000000 | \n",
" 44.000000 | \n",
" 2.000000 | \n",
" 3.000000 | \n",
" 18.250000 | \n",
" 2808.000000 | \n",
" 4.000000 | \n",
" 5.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 4.000000 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" max | \n",
" 82.000000 | \n",
" 2.000000 | \n",
" 61.000000 | \n",
" 2.000000 | \n",
" 4.000000 | \n",
" 36.000000 | \n",
" 6278.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" nro sukup ikä perhe koulutus palveluvuodet \\\n",
"count 82.000000 82.000000 82.000000 82.000000 81.000000 80.000000 \n",
"mean 41.500000 1.231707 37.951220 1.621951 1.987654 12.175000 \n",
"std 23.815261 0.424519 9.773866 0.487884 0.844006 8.807038 \n",
"min 1.000000 1.000000 20.000000 1.000000 1.000000 0.000000 \n",
"25% 21.250000 1.000000 31.000000 1.000000 1.000000 3.750000 \n",
"50% 41.500000 1.000000 37.500000 2.000000 2.000000 12.500000 \n",
"75% 61.750000 1.000000 44.000000 2.000000 3.000000 18.250000 \n",
"max 82.000000 2.000000 61.000000 2.000000 4.000000 36.000000 \n",
"\n",
" palkka johtoon työtovereihin työympäristöön palkkaan \\\n",
"count 82.000000 82.000000 81.000000 82.000000 82.000000 \n",
"mean 2563.878049 3.060976 4.061728 3.219512 2.109756 \n",
"std 849.350302 1.058155 0.826826 1.154961 1.111179 \n",
"min 1521.000000 1.000000 2.000000 1.000000 1.000000 \n",
"25% 2027.000000 2.000000 4.000000 3.000000 1.000000 \n",
"50% 2320.000000 3.000000 4.000000 3.000000 2.000000 \n",
"75% 2808.000000 4.000000 5.000000 4.000000 3.000000 \n",
"max 6278.000000 5.000000 5.000000 5.000000 5.000000 \n",
"\n",
" työtehtäviin työterv lomaosa kuntosa hieroja \n",
"count 82.000000 47.0 20.0 9.0 22.0 \n",
"mean 3.195122 1.0 1.0 1.0 1.0 \n",
"std 1.047502 0.0 0.0 0.0 0.0 \n",
"min 1.000000 1.0 1.0 1.0 1.0 \n",
"25% 3.000000 1.0 1.0 1.0 1.0 \n",
"50% 3.000000 1.0 1.0 1.0 1.0 \n",
"75% 4.000000 1.0 1.0 1.0 1.0 \n",
"max 5.000000 1.0 1.0 1.0 1.0 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ikä | \n",
" palveluvuodet | \n",
" palkka | \n",
"
\n",
" \n",
" \n",
" \n",
" lukumäärä | \n",
" 82.000000 | \n",
" 80.000000 | \n",
" 82.000000 | \n",
"
\n",
" \n",
" keskiarvo | \n",
" 37.951220 | \n",
" 12.175000 | \n",
" 2563.878049 | \n",
"
\n",
" \n",
" keskihajonta | \n",
" 9.773866 | \n",
" 8.807038 | \n",
" 849.350302 | \n",
"
\n",
" \n",
" pienin | \n",
" 20.000000 | \n",
" 0.000000 | \n",
" 1521.000000 | \n",
"
\n",
" \n",
" alaneljännes | \n",
" 31.000000 | \n",
" 3.750000 | \n",
" 2027.000000 | \n",
"
\n",
" \n",
" mediaani | \n",
" 37.500000 | \n",
" 12.500000 | \n",
" 2320.000000 | \n",
"
\n",
" \n",
" yläneljännes | \n",
" 44.000000 | \n",
" 18.250000 | \n",
" 2808.000000 | \n",
"
\n",
" \n",
" suurin | \n",
" 61.000000 | \n",
" 36.000000 | \n",
" 6278.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ikä palveluvuodet palkka\n",
"lukumäärä 82.000000 80.000000 82.000000\n",
"keskiarvo 37.951220 12.175000 2563.878049\n",
"keskihajonta 9.773866 8.807038 849.350302\n",
"pienin 20.000000 0.000000 1521.000000\n",
"alaneljännes 31.000000 3.750000 2027.000000\n",
"mediaani 37.500000 12.500000 2320.000000\n",
"yläneljännes 44.000000 18.250000 2808.000000\n",
"suurin 61.000000 36.000000 6278.000000"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Tilastollisia tunnuslukuja valituille muuttujille\n",
"df1 = df[['ikä', 'palveluvuodet', 'palkka']].describe()\n",
"\n",
"# Suomenkieliset nimet tunnusluvuille\n",
"tunnusluvut = ['lukumäärä', 'keskiarvo', 'keskihajonta', 'pienin', \n",
" 'alaneljännes', 'mediaani', 'yläneljännes', 'suurin']\n",
"df1.index = tunnusluvut\n",
"df1"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" työtovereihin | \n",
" työympäristöön | \n",
" työtehtäviin | \n",
" johtoon | \n",
" palkkaan | \n",
"
\n",
" \n",
" \n",
" \n",
" lukumäärä | \n",
" 81.000000 | \n",
" 82.000000 | \n",
" 82.000000 | \n",
" 82.000000 | \n",
" 82.000000 | \n",
"
\n",
" \n",
" keskiarvo | \n",
" 4.061728 | \n",
" 3.219512 | \n",
" 3.195122 | \n",
" 3.060976 | \n",
" 2.109756 | \n",
"
\n",
" \n",
" keskihajonta | \n",
" 0.826826 | \n",
" 1.154961 | \n",
" 1.047502 | \n",
" 1.058155 | \n",
" 1.111179 | \n",
"
\n",
" \n",
" pienin | \n",
" 2.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" alaneljännes | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 2.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" mediaani | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 2.000000 | \n",
"
\n",
" \n",
" yläneljännes | \n",
" 5.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
"
\n",
" \n",
" suurin | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" työtovereihin työympäristöön työtehtäviin johtoon \\\n",
"lukumäärä 81.000000 82.000000 82.000000 82.000000 \n",
"keskiarvo 4.061728 3.219512 3.195122 3.060976 \n",
"keskihajonta 0.826826 1.154961 1.047502 1.058155 \n",
"pienin 2.000000 1.000000 1.000000 1.000000 \n",
"alaneljännes 4.000000 3.000000 3.000000 2.000000 \n",
"mediaani 4.000000 3.000000 3.000000 3.000000 \n",
"yläneljännes 5.000000 4.000000 4.000000 4.000000 \n",
"suurin 5.000000 5.000000 5.000000 5.000000 \n",
"\n",
" palkkaan \n",
"lukumäärä 82.000000 \n",
"keskiarvo 2.109756 \n",
"keskihajonta 1.111179 \n",
"pienin 1.000000 \n",
"alaneljännes 1.000000 \n",
"mediaani 2.000000 \n",
"yläneljännes 3.000000 \n",
"suurin 5.000000 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Tilastollisia tunnuslukuja tyytyväisyyksille\n",
"df2 = df.loc[:,'johtoon':'työtehtäviin'].describe()\n",
"\n",
"# Sarakkeiden järjestys keskiarvon mukaan suurimmasta pienimpään\n",
"df2 = df2.sort_values('mean', axis=1, ascending=False)\n",
"df2.index = tunnusluvut\n",
"df2"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" lukumäärä | \n",
" keskiarvo | \n",
" keskihajonta | \n",
" pienin | \n",
" alaneljännes | \n",
" mediaani | \n",
" yläneljännes | \n",
" suurin | \n",
"
\n",
" \n",
" \n",
" \n",
" työtovereihin | \n",
" 81.0 | \n",
" 4.061728 | \n",
" 0.826826 | \n",
" 2.0 | \n",
" 4.0 | \n",
" 4.0 | \n",
" 5.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
" työympäristöön | \n",
" 82.0 | \n",
" 3.219512 | \n",
" 1.154961 | \n",
" 1.0 | \n",
" 3.0 | \n",
" 3.0 | \n",
" 4.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
" työtehtäviin | \n",
" 82.0 | \n",
" 3.195122 | \n",
" 1.047502 | \n",
" 1.0 | \n",
" 3.0 | \n",
" 3.0 | \n",
" 4.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
" johtoon | \n",
" 82.0 | \n",
" 3.060976 | \n",
" 1.058155 | \n",
" 1.0 | \n",
" 2.0 | \n",
" 3.0 | \n",
" 4.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
" palkkaan | \n",
" 82.0 | \n",
" 2.109756 | \n",
" 1.111179 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 2.0 | \n",
" 3.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" lukumäärä keskiarvo keskihajonta pienin alaneljännes \\\n",
"työtovereihin 81.0 4.061728 0.826826 2.0 4.0 \n",
"työympäristöön 82.0 3.219512 1.154961 1.0 3.0 \n",
"työtehtäviin 82.0 3.195122 1.047502 1.0 3.0 \n",
"johtoon 82.0 3.060976 1.058155 1.0 2.0 \n",
"palkkaan 82.0 2.109756 1.111179 1.0 1.0 \n",
"\n",
" mediaani yläneljännes suurin \n",
"työtovereihin 4.0 5.0 5.0 \n",
"työympäristöön 3.0 4.0 5.0 \n",
"työtehtäviin 3.0 4.0 5.0 \n",
"johtoon 3.0 4.0 5.0 \n",
"palkkaan 2.0 3.0 5.0 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Edellinen transponoituna\n",
"df3 = df2.T\n",
"df3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Grafiikka\n",
"\n",
"Yleisimmät esitystavat ovat\n",
"* viiden luvun yhteenvedon (pienin, alaneljännes, mediaani, yläneljännes, suurin) esittäminen ruutu- ja janakaaviona\n",
"* keskiarvojen esittäminen pylväskaaviona\n",
"\n",
"Grafiikan läheisyydessä pitää olla tiedot siitä kuinka monen havainnon perusteella tunnusluvut on laskettu (n-arvot). Nämä löytyvät esimerkiksi describe-funktiolla lasketusta tunnuslukutaulukosta (count)."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'Kuukausipalkka, n = 82')"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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oqIiScy+JoRCIY0ePVrTpk2LPMbcq9emTZvUvn17BQKByJ+MjAxJzL66HT16VFOmTNE111yjrl27avz48ZEZMXtJzrATJ064pKQkt3jxYldcXOzy8/PdnXfe6e6++2539OhR161bN7d69WpXUlLisrKyXCAQcB988IFzzrm33nrLBQIB9+6777pgMOieeOIJd80117ivv/7aOedcZmamGzx4sPviiy/csWPH3KRJk9ydd97p5Ydbq+Tl5bkOHTq45557zoVCIZebm+sGDRrkFi9ezOxryKOPPuratWvnpk6d6pxzzL0G/O53v3PTpk077XFmX/1uu+02N2HCBFdQUOCOHTvmJk6c6O666y5m/w3TMbB37153xx13uNLS0shjr7zyiuvcubNbt26dGzBgQLn9Z86c6aZMmeKcc27y5Mnu3nvvLbf9+uuvd+vXr3fOOderVy/3l7/8JbLt8OHDrm3btm7//v3V9eHUOceOHXPOORcOh93u3btd//793apVq5h9DcjKynI33nijS0tLi8QAc69+t956q1u9evVpjzP76rVz507XoUOHyNcc55w7cuSI++STT5j9N0zfJrj88sv1+OOPKzo6OvLY5s2bddVVV+nTTz9VmzZtyu3funVr5eTkSJL27NlT4fZjx47p0KFD5bY3bdpU8fHx2r17dzV+RHVLo0aNJEm9e/fW4MGD1axZMw0dOpTZV7O8vDzNmDFDCxcuVFxcXORx5l69wuGwdu3apb/97W/q06ePevXqpfvuu08FBQXMvpp9+OGHat26tdatW6f+/fvrxz/+sR5++GE1a9aM2X/DdAycyjmnRx55RK+99ppmzJih48ePl/tCKUl+v19ff/21JJ11+/HjxyVJDRo0OG172Tb825YtW/T6668rKipKaWlpzL4ahcNhZWRkaOzYsWrXrl25bcy9euXn56t9+/YaOHCgNm3apGeeeUb79u1TRkYGs69mBQUF2r17t/bt26fnn39eL7zwgnJzczV16lRm/w1iQFJhYaHS0tL04osvavXq1Wrbtq3i4uIiL2YrU1RUpIYNG0rSWbeX/cU5ceJEhe+Pf/P7/WrevLkyMjK0bds2Zl+Nli5dqnr16mn06NGnbWPu1atp06Zas2aNhg8frri4OP3gBz9QRkaGXn/9dTnnmH01KvvVvTNmzFCjRo3UtGlTTZo0SX//+9+Z/TfMx8D+/fs1bNgwFRYWav369Wrbtq0kqU2bNvr000/L7btnzx5dccUVkqQrrriiwu3x8fFq3ry59uzZE9l2+PBhHT169LTLTVbt2LFD119/vYLBYOSxYDCo2NhYtW7dmtlXkz//+c965513lJiYqMTERG3cuFEbN25UYmIif+erWU5OjhYsWCB3yi+KDQaDioqKUseOHZl9NWrdurXC4bBKSkoij4XDYUnSlVdeyewl2/+a4OjRo+66665z06ZNc6FQqNy2/Px8l5iY6J544gkXDAZddna2CwQCLjs72znnIq84zc7OjrzCtGvXru7IkSPOOeceeeQRN2jQILd///7IK0xvu+22mv4Qa63CwkLXu3dvN3fuXFdcXOwOHDjghg8f7u6//35mX4OmTp0aeQEhc69eX375pUtISHDLli1zJSUl7uDBg+7mm29206dPZ/bVLBgMuv79+7vU1FRXWFjo8vLy3JgxY9yECROY/TdMx8CKFStcmzZtXKdOnVxCQkK5P8459+GHH7pbbrnFBQIB169fP/fcc8+Ve/8XXnjBDRw40CUkJLjhw4e7999/P7ItGAy6+fPnu2uvvdZ17tzZpaSkuH/96181+vHVdp9++qkbO3asS0xMdH369HGLFi1yxcXFzjlmX1NOjQHnmHt1e/vttyPz7d69u5s1a5YrKipyzjH76nbo0CE3adIkl5SU5BITE92UKVNcQUGBc47ZO+ecz7lTrlkBAABzzL9mAAAA64gBAACMIwYAADCOGAAAwDhiAAAA44gBAACMIwYAADCOGAAAwDhiAGa0bdtWb7/9drnHnnvuOXXo0EFr166t9PEzMzPP+AuAqtO7776rQCBQJccaPXq0MjMzJUnTpk3TtGnTvnW/uqSoqEgzZ85UUlKSunbtquTk5MivqZWkAwcOaOLEierevbuuueYajR8/Xp9//rmHKwZqDjEAs5YtW6bZs2dryZIlGjVqlNfL+U4SExP13nvveb2MOiEzM1P79u3TSy+9pDfffFPt2rXTxIkTI9snTJig+Ph4vfrqq3r11Vf1ve99T+PHj/dwxUDNIQZgjnNOs2fP1sqVK/XUU0+pT58+kW3/efVgw4YN6tu3ryTp7bffjvxWyzIV/QRdUFCgoUOHKj09XSUlJSosLNS9996rAQMGKCEhQddee63++Mc/Rvbv27evNmzYEPnv/zxXZmamevfurW7dumnYsGHaunXrafsdOHBAbdu21apVq5SUlKQuXbooIyNDhYWFkk7+hryHH35YN9xwgwKBgHr06KFZs2bp2/6P5AcPHlS/fv00d+7c0/b9+OOP1b17dz355JOSpL179+ruu+/Wddddp44dO+rGG2/Ua6+9dtbjl9mwYYNGjhyp2bNnq3v37urRo4dmzJhR7jfNneqmm25SIBA47c+4cePOuP/evXvlTv4+FklSVFRU5FfQFhQUqGnTpkpPT1eDBg3UsGFDjRkzRp988okKCgrOaf1AXRbj9QKAmlRSUqLJkydr69at2rhxo374wx9W+TmOHDmi22+/Xe3atdPs2bMVHR2tOXPm6MCBA1q/fr0uuOACbdmyRWlpabrhhht02WWXnfV4b731lp599llt2LBBzZo107PPPqsZM2aoV69eZ9x/y5YtevHFFxUKhTRhwgQ9+OCDmj9/vlauXKlt27Zp5cqVuvjii/Xee+/ptttu009+8hP16NHjjMf6/PPPlZycrJ/97GdKS0srt+2jjz7SuHHjNHnyZI0YMUKSlJqaqn79+umxxx6Tc04LFizQAw88UC64zmbHjh3q1auXtm3bpn/84x9KTk5Wz549ddNNN52270svvXROxyxz++23KzU1Vd27d1d0dLQaN26sp556SpIUHx+v5cuXl9t/8+bNuvTSSxUfH/9fnQeoi7gyAFPuu+8+HTp0SPXr1y/3k3hVKSgoUHJyspo1a6a5c+cqOjpa0slvko8++qgaNWoUOb8kffXVV996zPr166ugoEDr1q3Txx9/rBEjRig7O1uxsbFn3P83v/mNLrroIjVr1kxpaWn661//qmAwqJtvvllPPvmkmjVrpq+++kpFRUVq2LChcnNzz3icgwcPavTo0erVq9dpIbBr1y6NHTtWd9xxRyQEJGnp0qVKTU2Vc04HDx7UhRdeWOHxz8Tv9+uXv/ylYmNj1bFjR7Vt21afffbZOb//2YRCIQ0cOFCvv/663nnnHfXr10/jx49XcXHxafs+/fTTWrFihWbPnl0l5wZqO64MwJROnTpp3rx5ysrKUkpKiq688koNGDCgyo6/e/du9e7dW9u3b9fnn3+uli1bSpLy8vI0Z84cffzxx2rRooWuvvpqSVI4HP7WYwYCAWVmZmrVqlV6/PHH5ff7NXr0aKWkpJxx/1OvNHz/+99XMBjU0aNHFQ6H9dvf/lbbt2/XJZdcovbt28s5V+Ea3n33XSUlJWnr1q265557yv2EnJWVpUAgoI0bNyo5OVn16tWTJOXk5Gj8+PE6fPiwWrVqpYsuuuhbb0OcqkmTJvL5fJH/jo2NrfD9Bw8erC+//PK0x7t06aKlS5eWe6ykpETp6elatmyZmjdvLulkGHbt2lVvvvlm5FZQMBjUQw89pE2bNmnp0qXq3r37Oa8dqMuIAZgycuRI1atXT9ddd53uuusuTZ06VZdddlnkvntUVFS5e9RHjhyJvF32U34wGIx88zty5IgaN24c2ScQCGjZsmVKS0vT1KlTtWbNGkVFRSk9PV19+/bV8uXLFRMToyNHjmjdunWR9zvbeb/44gs1adJEy5cvVzAYVHZ2tiZOnKirrroqcs/7VLm5ubr88sslnXwdQVxcnBo3bqyUlBTFx8frjTfeUP369RUOh9W1a9cKZ3XjjTdq3rx5GjlypB588EEtWrQosu0Xv/iF7r77bg0ePFiZmZmaPHmycnNzlZ6ersceeyzyzXXz5s3asmXL2Z6S7+zFF188532//vprFRQUKBgMRh6Ljo6Wz+eLXGHJz89XSkqKgsGg1q9fXy23kIDaitsEMCs9PV0JCQmaMGGCjh49Kklq1aqVNm/erNLSUu3fv1/r16+P7N+yZUvFxMRE7lVnZWXprbfeKnfMsm8sDzzwgD777DM9/vjjkqRjx47J7/crOjpa+fn5kcvPZQHQqlUrbd26VUVFRTp8+HDkXrYk7dy5U+PGjVNOTo7q1aunJk2aSFK5CDnVwoULVVhYqNzcXC1ZskQ//elPFRsbq8LCQtWvX19RUVEqLCzUvHnzVFhYWOEL9GJjYxUdHa2HHnpIr7zyijZt2lRuW8OGDTVnzhytWLFCO3bs0PHjxxUKhSKBsmfPHv3+97+XpHLfhL0QHx+vLl26aMGCBcrLy1NxcbHmz5+vxo0bq0uXLiopKdG4cePUqFEjPf3004QAzCEGYFZUVJQWLlyo0tJSTZo0SaFQSPfff7927dqlbt26adKkSRo+fHhk/4svvljTp0/XH/7wB3Xu3FmrV6/W0KFDz3jsiy66SDNnztSSJUuUk5MTufTcuXNnDR06VM2bN1f79u31ySefSJJ+/etf6/jx40pKStKYMWM0ZMiQyLEGDhyo22+/XSkpKUpISFB6erqmT5+uTp06nfHcLVu21KBBgzRkyBAFAgFNnz5dknTvvfcqJydH3bp10/XXX6/CwkJde+21kTVUpFWrVkpNTdWDDz542v3/Hj16aMSIEZo6daouueQSTZkyRRkZGerSpYvS09M1bNgwxcbGRs4xbtw4zZw581uemeqxZMkS/ehHP9KQIUPUq1cv7d27V8uXL1eDBg302muvadeuXdq+fbt69OhR7l8nfPHFF56sF6hJPvff3NADUGsdOHBA/fr109atW9WiRQuvl3NG//znP7Vq1Srdf//9Xi8FwCm4MgCgxmzatEkjR470ehkA/gMvIARQY079P/4BqD24TQAAgHHcJgAAwDhiAAAA44gBAACMIwYAADCOGAAAwDhiAAAA44gBAACMIwYAADDu/wFiAk5foI58AgAAAABJRU5ErkJggg==",
"text/plain": [
"