{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Päivitetty 2023-12-10 / Aki Taanila\n" ] } ], "source": [ "from datetime import datetime\n", "print(f'Päivitetty {datetime.now().date()} / Aki Taanila')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Frekvenssijakauma\n", "\n", "Kategorisen muuttujan frekvenssijakauman esitän frekvenssitaulukkona tai pylväskaaviona.\n", "\n", "Frekvenssitaulukolla tarkoitan taulukkoa, joka sisältää muuttujan arvojen esiintymiskerrat (frekvenssit) ja esiintymiskertojen prosenttiosuudet.\n", "\n", "Seuraavassa yksi tapa frekvenssitaulukon ja pylväskaavion laatimiseen." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "\n", "# Grafiikka-paketit\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# Grafiikan tyylimäärittely\n", "sns.set_style('white')" ] }, { "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": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Koulutuksen numeroarvoja [1, 2, 3, 4] vastaavat tekstimuotoiset arvot listana\n", "koulutus = ['Peruskoulu', '2. aste', 'Korkeakoulu', 'Ylempi korkeakoulu']" ] }, { "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", "
f%
Peruskoulu2733.3 %
2. aste3037.0 %
Korkeakoulu2227.2 %
Ylempi korkeakoulu22.5 %
Yhteensä81100.0 %
\n" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Frekvenssit crosstab-funktiolla\n", "# Frekvenssi-sarakkeen otsikkona käytän f-kirjainta\n", "df1 = pd.crosstab(df['koulutus'], columns='f')\n", "\n", "# Häiritsevän otsikon poisto\n", "df1.columns.name=''\n", "\n", "# Tekstimuotoiset arvot numeroiden tilalle\n", "df1.index = koulutus\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": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoYAAAGsCAYAAABAVWa0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAu70lEQVR4nO3deXRU9d2A8SczIYESZBECru0BJBVFSFgUgyJBTQE3NhUwihxZBAEVMbi0GllUKiKktSoCEW0LVqFqwUrVgrRKMCi+1YBYWwXCAYSgJiAkTOb9wzGvkS3kRYbA8zkn5zAz9975zq+35OmdGRoTDofDSJIk6bgXiPYAkiRJOjoYhpIkSQIMQ0mSJEUYhpIkSQIMQ0mSJEUYhpIkSQIMQ0mSJEXERnsAVS9lZWVs2bKF2rVrExMTE+1xJElSJYTDYXbs2EFiYiKBwP6vCxqGOiRbtmyhc+fO0R5DkiRVwdKlS2nSpMl+HzcMdUhq164NwJtvvkndunWjPE31EgqF+J//+R/OOeccgsFgtMepNly3qnPtqs61qxrXrep+7LUrLi6mc+fO5b/H98cw1CH57u3jhIQEEhISojxN9RIKhfjJT35CQkKCf2EeAtet6ly7qnPtqsZ1q7ojtXYH+xiYXz6RJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjCUJEkSYBhKkiQpwjBUlQSDwag8b6gsHJXnlSTpeBAb7QFUPWW+8AGffV12RJ+zeWIC065NPqLPKUnS8cQwVJX8Z+sOVm8tjfYYkiTpMPKtZEmSJAGGoSRJkiIMQ0mSJAGGoSRJkiIMQ0mSJAGGoSRJkiIMQ0mSJAGGoSRJkiIMQ0mSJAGGoSRJkiIMQ0mSJAGGoSRJkiIMQ0mSJAGGoSRJkiIMQ0mSJAGGoSRJkiIMQ0mSJAGHEIb3338/qampbNu2rcL9e/bs4eqrr2bo0KGEw2HS0tKYP3/+YR/0YHr06MHLL7+8z8cO50zjxo1j3Lhxh+VY35ebm0tSUtJhPy4c3tcvSZKOXZUOw7vuuouGDRty1113Vbg/OzubrVu38vDDDxMTE3PYB6yshQsXcsUVV0Tt+SVJkqq7SodhfHw8U6dO5d133+XZZ58FYMWKFeTk5PDYY49Rr169vfYpKSlh2rRpdO3alQ4dOjB48GA+//zz8seTkpKYN28e6enptG7dmmHDhvHhhx9y7bXXkpycTO/evcu3z87OZvjw4YwcOZI2bdqQlpbGvHnzyo9V2atiy5Yto23btrz66qsAFBQUcOutt9KxY0dSU1MZM2YMW7ZsAb69ite5c2fGjBlDu3bteOqppyocq6CggK5duzJp0iTC4fBBX+97773H9ddfT6dOnWjVqhW9evVi1apVe80YDoe555576NGjB5s3bwbg9ddfp1evXqSkpJCenk5OTg5lZWXAvq9iJiUlkZubu9exMzIyyM7OLr+9YcMGkpKS2LBhw0HXTpIkHdsO6TOGTZs25Ve/+hVTpkxh9erVjBs3jjvvvJNzzjlnn9tPnTqVJUuWkJOTw7Jly2jdujWDBg1i9+7d5du88sorzJs3j7/97W+sXLmS4cOHM3HiRP75z38SFxfHE088Ub7tG2+8QUpKCu+++y4PPPAA48eP55133qn0/EuXLuX222/n0UcfpVu3bpSWljJo0CCCwSCLFy8uj8Vhw4axZ88eADZt2kTTpk1555136N+/f/mx1q9fT0ZGBldeeSV33303MTExB3y9u3bt4uabbyY9PZ233nqL3NxcTj/9dCZPnlxhxrKyMu6++25Wr17Ns88+S+PGjVm+fDm33norN910EytWrODRRx9l9uzZzJkzp9KvXZIk6WAO+csnPXv25NJLLy2/qjdgwIB9bhcOh5k7dy633347p512GvHx8YwYMYLS0lKWLFlSvt11111HvXr1SExM5IwzzuDSSy+lWbNm/OQnP+G8886joKCgfNukpCRuvPFGatSoQadOnUhPT+ell16q1NxLly5lxIgRZGVl0blzZwDy8vJYv349WVlZ1KlThxNOOIGsrCzWrFnDhx9+WL5vnz59qFGjBgkJCcC3VwozMjK48MILGTVqVKVeb40aNZg3bx79+/enpKSEgoIC6tWrV35F8DuZmZksW7aMOXPm0KBBAwDmz59P165d6d69O7GxsZx11lkMGTKEuXPnVuq1S5IkVUZsVXa65ZZbeOmllxg9evR+tyksLGTnzp2MHj2aQOD/+rO0tLRC7H3/LehgMEjdunXLbwcCAcLhcPntn/3sZxWe46ST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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vaakapylväskaavio lukumääristä. Yhteensä-rivin tietoja en ota mukaan.\n", "df1.drop('Yhteensä')['f'].plot(kind='barh')\n", "\n", "# x-akselin otsikko (n-arvo laskettu edellisessä solussa)\n", "plt.xlabel(f'Lukumäärä, n = {n}')\n", "\n", "# x-akselilta lähtevä taustaviivoitus\n", "plt.grid(axis='x')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoYAAAGsCAYAAABAVWa0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA08ElEQVR4nO3deXRU9d2A8ScLSdAgixJQ3A4gURYhYRcUCdVUQEVALSCKHlGUAgJqELEaUVQqItC6oUgRa9zAnWqFgrRKkLUqINaFJTQgBDVhS0ju+4fDvEZAlgIjyfM5x3OcmTt3vr97U/L0zgxGBUEQIEmSpHIvOtIDSJIk6dfBMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCkkNtID6OhSUlLChg0bOPbYY4mKior0OJIkaT8EQcCWLVtISkoiOnrv1wUNQx2QDRs20K5du0iPIUmSDsKcOXOoWbPmXh83DHVAjj32WABmzZpF5cqVIzzNkVdcXMy///1vzj77bGJiYiI9zhFVntcOrt/1l9/1l+e1Q9lZf0FBAe3atQv/Ht8bw1AHZNfbx4mJiSQmJkZ4miOvuLiYY445hsTExKP6D4iDUZ7XDq7f9Zff9ZfntUPZW/++Pgbml08kSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQwlSZIEGIaSJEkKMQx1UGJiYiLyusUlQUReV5Kk8iA20gPo6JTxylK++aHkiL5m3aRExv0u5Yi+piRJ5YlhqIPy1cYtLN9YFOkxJEnSIeRbyZIkSQIMQ0mSJIUYhpIkSQIMQ0mSJIUYhpIkSQIMQ0mSJIUYhpIkSQIMQ0mSJIUYhpIkSQIMQ0mSJIUYhpIkSQIMQ0mSJIUYhpIkSQIMQ0mSJIUYhpIkSQIMQ0mSJIUYhpIkSQIOIAzvuece2rRpw6ZNm0rdv3PnTq644gpuvPFGgiAgLS2NadOmHfJB96VTp0688cYbe3zsUM40bNgwhg0bdkj29VPZ2dkkJycf8v3CoV2/JEkqu/Y7DO+44w5OOOEE7rjjjlL3T5gwgY0bN/LQQw8RFRV1yAfcX2+//TaXXHJJxF5fkiTpaLffYRgfH8/YsWP5+OOPee655wCYP38+kydP5tFHH6VKlSq7PaewsJBx48bRoUMHWrRoQd++fVm1alX48eTkZF588UXS09Np3Lgx/fr149NPP+V3v/sdKSkpdOvWLbz9hAkTuPnmmxkwYABNmjQhLS2NF198Mbyv/b0qNnfuXJo2bcqMGTMAyMnJ4ZZbbqF169a0adOGoUOHsmHDBuDHq3jt2rVj6NChNGvWjKeeeqrUvnJycujQoQOjRo0iCIJ9rnfRokVcffXVtG3blkaNGtG1a1eWLFmy24xBEHDnnXfSqVMn1q9fD8D7779P165dSU1NJT09ncmTJ1NSUgLs+SpmcnIy2dnZu+27d+/eTJgwIXx77dq1JCcns3bt2n0eO0mSVLYd0GcMa9euzR/+8AfGjBnD8uXLGTZsGLfffjtnn332HrcfO3Yss2fPZvLkycydO5fGjRtz3XXXsWPHjvA2b775Ji+++CJ///vfWbhwITfffDP3338///rXv4iLi+OJJ54Ibztz5kxSU1P5+OOPuffeexk5ciQfffTRfs8/Z84chgwZwiOPPMJFF11EUVER1113HTExMbz33nvhWOzXrx87d+4EIDc3l9q1a/PRRx/Rs2fP8L7WrFlD7969ufTSSxk+fDhRUVG/uN7t27dz0003kZ6ezgcffEB2djannnoqo0ePLjVjSUkJw4cPZ/ny5Tz33HPUqFGDefPmccstt3D99dczf/58HnnkEZ599lmmTJmy32uXJEnalwP+8slll13GhRdeGL6q16tXrz1uFwQBWVlZDBkyhFNOOYX4+Hj69+9PUVERs2fPDm931VVXUaVKFZKSkjjjjDO48MILqVOnDscccwytWrUiJycnvG1ycjLXXnstFSpUoG3btqSnp/P666/v19xz5syhf//+ZGZm0q5dOwAWLFjAmjVryMzMpFKlShx33HFkZmayYsUKPv300/Bzu3fvToUKFUhMTAR+vFLYu3dvzjvvPAYOHLhf661QoQIvvvgiPXv2pLCwkJycHKpUqRK+IrhLRkYGc+fOZcqUKVSrVg2AadOm0aFDBzp27EhsbCwNGjTghhtuICsra7/WLkmStD9iD+ZJv//973n99dcZNGjQXrfJy8tj69atDBo0iOjo/+/PoqKiUrH307egY2JiqFy5cvh2dHQ0QRCEb59++umlXuPE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OampqbRp04aRI0eyfft2oOyfe/jl9ZeH8w9AIO2nq666Khg6dGiwdevWYPXq1UGnTp2CiRMnRnqsI+LBBx8Mhg0bFukxjqgFCxYEv/nNb4J69eoF8+bNC4IgCL777rugRYsWwdSpU4OioqLgww8/DFJSUoKlS5dGeNpDb0/rD4IguOyyy4Jp06ZFcLLDa9u2bUGbNm2CcePGBTt27Ajy8vKCvn37BjfeeGOZP/+/tPYgKPvnftOmTUGjRo2CV199NSguLg7Wr18fdO7cORg3blyZP/dB8MvrD4Kyf/538Yqh9suqVauYP38+t912GxUrVuSUU07h5ptv5vnnn4/0aEfEJ598QsOGDSM9xhEzffp0br31VgYPHlzq/vfee48qVarQq1cvYmNjad26NRdffHGZ+znY2/oLCwtZuXJlmf5ZWLduHWeeeSb9+/cnLi6OqlWrcuWVV/Lxxx+X+fP/S2svD+e+WrVqfPjhh3Tt2pWoqCi+++47duzYQbVq1cr8uYdfXn95OP+7GIbaL1988QVVqlShRo0a4fvq1KnDunXr+OGHHyI42eFXUlLCZ599xuzZs2nfvj3nnXced911F99//32kRzts2rZty9///nc6duxY6v4vvviCevXqlbqvbt26rFix4kiOd9jtbf0rVqxg586djB8/nnPOOYf09HSeeuopSkpKIjTpoVe7dm2efvppYmJiwve9++67NGjQoMyf/19ae3k49wCJiYkAtGvXjosvvpjq1avTtWvXMn/ud9nb+svL+QfDUPtpy5YtVKxYsdR9u25v3bo1EiMdMXl5edSvX5/09HTeeecdsrKy+Oabb8r0ZwyrV69ObGzsbvfv6ecgISGhzP0M7G39+fn5tGjRgt69ezNnzhz++Mc/8txzzzFp0qQITHn4BUHA2LFj+cc//sGdd95Zbs4/7L728nbu33vvPT744AOio6MZOHBguTr3sPv6y9P5Nwy1X4455hi2bdtW6r5dt4899thIjHTEnHDCCTz//PN0796dihUrctJJJ3HbbbfxwQcfUFBQEOnxjqiKFSuGP4i9y/bt28v8z8Aubdq0YcqUKbRo0YIKFSpw9tlnc8011/DOO+9EerRDrqCggIEDB/Lmm28ydepUkpOTy83539Pay9O5hx+jr0aNGtx2223MnTu33Jz7XX6+/oYNG5ab828Yar+cccYZ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Dz4YdOnSJVi9enWwffv2YMKECUFaWlr42NWrVy+YN29esG3btqBRo0bBvHnzgiAIgs8++yxo0qRJsHTp0t2O8YEex5/LyMgIGjRoEPzzn/8MioqKghdeeCE466yzgtzc3P16/r5MmjQpaNCgQXDWWWcF9erVC6644opg69at4cdzc3ODkpKSYM2aNUG9evWCNWvWHJLXlQ4F30qW9KuUmZlJs2bNaNasGa1bt2bkyJFce+21XHXVVeFtzjvvPGrUqMFxxx3HzJkzqVChArfeeisJCQlUr16du+66i1mzZvHtt9+SkJDAihUreO2111i/fj2jRo0Kf85u6tSp9OjRg+bNmxMTE0P79u1JS0sjKysr/Frp6enUr1+fuLg4LrvsMvLz89m0adMBralatWq8/fbbpKWlUVBQQG5uLlWrVmX9+vV73P7yyy9n5syZFBQUADB9+nS6d+8OwBVXXMHkyZOpXr06GzZsYPv27Rx77LHhfcXHxzNjxgz+8Y9/UKVKFebMmUN6evpur1GhQgVefPFFevbsSWFhITk5OVSpUmW3mfr3709CQgKnnXYaLVu25Ouvvw4/dvrpp9OlSxdiYmJo164d1atX55tvviEIArKyshgyZAinnHIK8fHx9O/fn6KiImbPnr3bLAkJCbzyyit89NFH1KlTh4ULF3L22Wf/z8dxT1q2bEmbNm2IjY2lW7duFBcXs3r16v1+/i+JioripptuYsGCBcyaNQuAP/zhD+HHa9SoQVRU1CF5LelQ861kSb9Kd999N127dv3FbZKSksL/vmnTJk466SRiYmLC95188skA5OTk0LdvX+Li4njllVe49957OeWUUxg6dCgXXnghOTk5zJ8/nxdeeCH83OLiYlq1ahW+Xb169fC/x8b++EfngX4RpkKFCrz11ltkZWURFRVFvXr1KCgoCO/v51JSUjj55JN59913adKkCStWrGDixIkAbNu2jXvvvZePP/6YmjVrUr9+fYIgCM/0l7/8hQkTJpCZmcm3337Lueeeyz333EPNmjVLvUZMTAzZ2dn07duXrVu3UrduXWJjYwmCoNR2P11/hQoVSj3+08d2PV5SUkJeXh5bt25l0KBBREf//3WIoqIicnJySj0nISGBF154gccee4yhQ4dSUFBAeno6I0aMoHLlyv/TcdyTn68H9nw+161bxyWXXLLHfdxwww3ccMMNpe779NNPGTduHB9//DGxsbEcc8wx3H777fTq1Yu7776bxMTE/Z5RigTDUNJR66dXXWrVqsW6desoLi4Ox+GuK0DVq1fn888/Jy0tjT59+pCfn89f//pXBg8ezLx586hZsyZdunQp9Ut+3bp1JCQkHNJ5Z8yYwdSpU3nhhRfCn7EbOXIkK1eu3OtzunfvzltvvcWqVav4zW9+Q5UqVQDCwfTPf/6T+Ph4SkpKaN68OfDjX5fzn//8h3vuuYfY2Fi+/vprRowYwahRoxg/fnyp/S9dupSRI0eSlZVFw4YNAZg0aVKpK4IHq2rVqsTHxzNp0iSaNGkSvv+rr76iRo0apbYtKChgw4YNjBkzBoDly5czZMgQnnjiCTIyMkptezDH8WCddNJJ+/Wt6V3++9//UlxcXCoyK1SoQFRUVKn/0yL9WvlWsqQyoV27dgA8/PDDbN++nW+//Zb777+fVq1aUatWLV5++WVuv/12Nm3aRGJiIomJiRxzzDHExcVxxRVXMGXKFP79738D8Mknn9C1a1feeuut/XrtuLg48vPz93p7l/z8fKKjo0lISCAIAj744ANee+01ioqK9rrvLl26sGTJEl577TUuv/zy8P0FBQXEx8cTHR1NQUEBo0ePpqCggKKiIqKiohgyZAiTJk1i586dVK9endjYWKpWrbrbfD+dCWDJkiVMmTKFwsLC/Vr7L4mOjqZ79+6MGTOG3NxcSkpKmD59Op07d97t71HcsmULffv25c033yQIApKSkoiOjt7nzPt7HI+Upk2bUrFiRUaNGsWOHTvYtGkTY8aM4YILLij1BRTp18owlFQmVKpUiWeffZaVK1fSrl07OnfuTK1atRg3bhzw418hctppp9GpUydSU1OZNm0ajz32GPHx8fz2t79lyJAhDB8+nNTUVAYNGkSfPn3o3bv3fr12ly5dePXVV+nZsyfw41W+sWPHcuutt5ba7rLLLuOcc86hU6dOtGrViscff5xrrrmGr7/+eq8hVqVKFdLS0oiNjaV169bh+0eMGMGKFSto0aIFv/3tb8PfYl65ciVxcXE8/vjjzJw5k5YtW5KWlkb16tXD83Ts2JFFixZx/vnn06ZNG3r27EmvXr1o3rw5mZmZ9O7dm7y8PDZu3HjA5+HnMjIyaNy4MT179qRZs2ZMnjyZ8ePHU79+/VLb1ahRg/HjxzNx4kRSU1Pp3LkzrVq1ok+fPrsd4/05jikpKbzxxhv/8/wHqlq1ajzzzDN88803nHvuuXTp0oXTTz+dUaNGHfFZpIMRFfz8gySSJB3lsrKyqFy5MhdddFGkR5GOKl4xlCSVKUEQ8Mknn3DeeedFehTpqOMVQ0mSJAFeMZQkSVKIYShJkiTAMJQkSVKIYShJkiTAMJQkSVKIYShJkiTAMJQkSVKIYShJkiTAMJQkSVLI/wF5u8ZUGXixLgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vaakapylväskaavio prosenteista\n", "df1.drop('Yhteensä')['%'].plot(kind='barh')\n", "\n", "plt.xlabel(f'Prosenttia vastanneista, n = {n}')\n", "plt.grid(axis='x')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lisätietoa\n", "\n", "https://pandas.pydata.org/docs/reference/api/pandas.crosstab.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": 4 }