{ "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": [ "# Luokiteltu jakauma\n", "\n", "Määrällisen muuttujan jakaumaan tutustun luokitellun jakauman avulla. Luokitellun jakauman voin esittää frekvenssitaulukkona tai histogrammina." ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nrosukupikäperhekoulutuspalveluvpalkkajohtotyötovtyöymppalkkattyötehttyötervlomaosakuntosahieroja
0113811.022.0358733.0333NaNNaNNaNNaN
1212922.010.0296315.0213NaNNaNNaNNaN
2313011.07.0198934.01131.0NaNNaNNaN
3413621.014.0214433.03331.0NaNNaNNaN
4512412.04.0218323.02121.0NaNNaNNaN
...................................................
777812213.00.0159844.0434NaN1.01.0NaN
787913311.02.0163813.02121.0NaNNaNNaN
798012712.07.0261234.03331.0NaN1.0NaN
808113522.016.0280834.0333NaNNaNNaNNaN
818223523.015.0218334.04341.0NaNNaNNaN
\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": "markdown", "metadata": {}, "source": [ "**Histplot**-funktio tuottaa histogrammi-kaavioon luokituksen, jossa luokat sisältävät alarajan, mutta eivät ylärajaa.\n", "\n", "Jos haluan **cut**-funktion tuottamien luokkien olevan yhdenmukaisia histogrammin kanssa, niin käytän cut-funktion yhteydessä parametria `right=False`. Tämänkin jälkeen voi tulla eroa viimeisen luokan ylärajan kohdalla, joka histogrammissa sisältyy luokkaan." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nrosukupikäperhekoulutuspalveluvpalkkajohtotyötovtyöymppalkkattyötehttyötervlomaosakuntosahierojapalkkaluokka
0113811.022.0358733.0333NaNNaNNaNNaN[3000, 4000)
1212922.010.0296315.0213NaNNaNNaNNaN[2000, 3000)
2313011.07.0198934.01131.0NaNNaNNaN[1000, 2000)
3413621.014.0214433.03331.0NaNNaNNaN[2000, 3000)
4512412.04.0218323.02121.0NaNNaNNaN[2000, 3000)
......................................................
777812213.00.0159844.0434NaN1.01.0NaN[1000, 2000)
787913311.02.0163813.02121.0NaNNaNNaN[1000, 2000)
798012712.07.0261234.03331.0NaN1.0NaN[2000, 3000)
808113522.016.0280834.0333NaNNaNNaNNaN[2000, 3000)
818223523.015.0218334.04341.0NaNNaNNaN[2000, 3000)
\n", "

82 rows × 17 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 palkkaluokka \n", "0 3 3 NaN NaN NaN NaN [3000, 4000) \n", "1 1 3 NaN NaN NaN NaN [2000, 3000) \n", "2 1 3 1.0 NaN NaN NaN [1000, 2000) \n", "3 3 3 1.0 NaN NaN NaN [2000, 3000) \n", "4 1 2 1.0 NaN NaN NaN [2000, 3000) \n", ".. ... ... ... ... ... ... ... \n", "77 3 4 NaN 1.0 1.0 NaN [1000, 2000) \n", "78 1 2 1.0 NaN NaN NaN [1000, 2000) \n", "79 3 3 1.0 NaN 1.0 NaN [2000, 3000) \n", "80 3 3 NaN NaN NaN NaN [2000, 3000) \n", "81 3 4 1.0 NaN NaN NaN [2000, 3000) \n", "\n", "[82 rows x 17 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Määrittelen luokkarajat palkan luokittelemiseksi \n", "bins = [1000, 2000, 3000, 4000, 7000]\n", "\n", "# Lisään dataan palkkaluokka-sarakkeen\n", "df['palkkaluokka'] = pd.cut(df['palkka'], bins=bins, right=False)\n", "\n", "# Datassa on nyt viimeisimpänä muuttujana palkkaluokka\n", "df" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
f%
palkkaluokka  
[1000, 2000)1923.2 %
[2000, 3000)5061.0 %
[3000, 4000)89.8 %
[4000, 7000)56.1 %
Yhteensä82100.0 %
\n" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Palkkaluokkiin kuuluvien frekvenssit\n", "df1 = pd.crosstab(df['palkkaluokka'], 'f')\n", "\n", "# Häiritsevän otsikon poistaminen\n", "df1.columns.name = ''\n", "\n", "# Prosentit\n", "n = df1['f'].sum()\n", "df1['%'] = df1['f']/n*100\n", "\n", "# Yhteensä-rivi\n", "df1.loc['Yhteensä'] = df1.sum()\n", "\n", "# Tyylimäärittely: f-sarake ilman desimaaleja, %-sarakkeeseen yksi desimaali \n", "df1.style.format({'f':'{:.0f}', '%':'{:.1f} %'})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Histogrammi\n", "\n", "Histogrammi on nopein keino luokitellun jakauman tarkasteluun. Histogrammia varten ei tarvitse erikseen laskea luokiteltua jakaumaa taulukkona." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Lukumäärä, n = 82')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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fr9qamrk9/vDOveZ+c78O34+MRdcTp48Ka/XG7TszOOKioqLBpczAePvf/97ROrrkiwpOSJT1yPF2rmzmF45Rr+co1ehiZcU3n9c6i965Uy5du7cGdEtnPl3/HxiLrg0atRIlZWVQcvOPE5MTLzo8+Pi4pSRkSG32y0XyRkAACsYYxQIBBQXd+FoEnPBJTU1VSUlJTp27JiaNWsmSfrss890xRVX6LLLLrvo891utxo0aBDpMgEAQBTE3Mm5v/jFL9ShQwdNnTpV5eXl+uKLLzR79mwNHDgw2qUBAIAoc5mLnQUTBceOHdPjjz+uLVu2yO12q1+/fnrwwQfDerItAACwT0wGFwAAgLrE3EdFAAAA50NwAQAA1iC4AAAAaxBcAACANX7SwaW4uFi9evXSli1bapft2rVLgwYNks/nU2ZmphYvXhz0nGXLlqlXr15q166d+vfvr48//rh2zO/3a/r06brhhhvk8/l033336euvv75krycS9u7dqxEjRqhz587q3r27xo0bp+LiYkn0qi6bNm3SoEGD1L59e3Xv3l2TJ09WVVWVJPpVF7/fr6FDh2r8+PG1y+jTud566y2lp6fL5/PV/snJyZFEv76vpKRE48aNU5cuXdSpUyfdf//9ta+JXv1/b775ZtD7yefz6brrrtN1110nKcZ7ZX6itm3bZn7zm9+YtLQ0s3nzZmOMMSUlJaZz585mwYIFpqamxmzcuNH4fD6za9cuY4wxmzdvNj6fz2zbts1UV1ebV1991XTp0sVUVFQYY4x5/vnnTVZWljl06JApKyszY8aMMffee2/UXuOPVVlZabp3726ee+458+2335ri4mJz7733mpEjR9KrOhw/ftxkZGSYJUuWGL/fb44cOWL69u1rnnvuOfp1HjNnzjStW7c2Dz30kDGGffB8nnzySTN+/PhzltOvcw0ZMsSMGjXKlJaWmrKyMvPAAw+Y7OxsenURhw8fNt27dzfLly+P+V79JIPL0qVLza9//WuzevXqoOCyaNEi07t376B1H330UTNu3DhjjDFjx441ubm5QeO//e1vTX5+vjHGmF/96lfmzTffrB07evSoadWqlTlw4EAkX07EfPbZZ+aee+4xp06dql327rvvmvbt29Or8ygrKzPGGBMIBMy+fftMr169zBtvvEG/6rBx40bTp08fM3r06NrgQp/qNnjw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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Käytän histogrammissa edellä määriteltyjä luokkarajoja\n", "sns.histplot(df['palkka'], bins=bins)\n", "\n", "# Havaintojen lukumäärä\n", "n = df['palkka'].count()\n", "\n", "plt.xlabel('Palkka')\n", "plt.ylabel(f'Lukumäärä, n = {n}')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, '%, n = 82')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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LgDaXEZGhnr37q2PPvpIR44c0aRJkzR48GBdf/31uuWWW1RSUnLRNd555x19+9vf1vr168+aW7FihXr37q3t27dLkv77v/9bd999t/r376/rr79eY8aM0f79+yN9twC0AYILgDbV1NSkbdu2aevWrRowYIAKCwsVHx+v1157TTt37tSYMWM0Y8YMHT9+/LxrbNy4Uf/+7/+up556St/73vfC5pYtW6b58+dr0aJF6t27tw4fPqx//dd/VX5+vrZs2aK3335bxhj9+te/jvZdBRAFvFQEIOqeeOIJzZ49u+X3yy+/XHl5eRozZoxuu+02JSUlKT4+XocOHVJSUpIaGhpUXV2tpKSks9bauHGj3nzzTc2bN0+DBg0Km1u2bJnWrl2rpUuXKhAISJI6deqk1157TVdddZVqa2t1+PBhdezYUUeOHInunQYQFQQXAFH3s5/9LOwalzN9+umnmjdvnvbv36+rr75a//iP/yhJ571wd8uWLerWrZtWrlypO+64I2xu586dSk1N1fLly9WjRw9JUnx8vNauXavi4mJ5PB6lp6ertrZWcXH89QfYiJeKALimqalJDzzwgH7wgx9o27ZtWrp0qcaNG3fB2zz88MN69tln9cEHH6i4uDhs7sknn9S8efO0fPlybdq0SZK0fv16LV68WK+88oo2btyo//zP/1RmZmbU7hOA6CK4AHBNU1OTGhoalJCQII/Ho0OHDmn+/Pktc+cSHx+vrl276qc//anmzp2rAwcOhM1lZmYqPz9f06dPV3V1tWpqauT1epWQkCBjjDZt2qRVq1add30AsY3gAsA1iYmJmj17tn79618rKytL99xzjwYMGKDOnTvr448/vuBtc3Nz1bt3b02dOvWsl5XGjx+vTp066YknntAPf/hD3XjjjbrzzjvVr18//eY3v9G4ceP05z//WY2NjdG8ewCiwGOMMW4XAQAA4ARnXAAAgDUILgAAwBoEFwAAYA2CCwAAsAbBBQAAWIPgAgAArEFwAQAA1iC4AAAAaxBcAACANQguAADAGgQXAABgjf8PsgAw/LRWfHEAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Histogrammi, jossa y-akselilla prosentit\n", "sns.histplot(df['palkka'], bins=bins, stat='percent')\n", "\n", "# Havaintojen lukumäärä\n", "n = df['palkka'].count()\n", "\n", "plt.xlabel('Palkka')\n", "plt.ylabel(f'%, n = {n}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lisätietoa\n", "\n", "\n", "* https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.cut.html\n", "* https://seaborn.pydata.org/generated/seaborn.histplot.html\n", " \n", "Data-analytiikka Pythonilla https://tilastoapu.wordpress.com/python/" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" } }, "nbformat": 4, "nbformat_minor": 2 }