{ "cells": [ { "cell_type": "markdown", "id": "b8487a98-1b51-46f1-b727-719575945544", "metadata": { "tags": [] }, "source": [ "### Pobieranie zbioru i pakietów" ] }, { "cell_type": "code", "execution_count": 38, "id": "800bc7a7-aa60-4db8-b170-a5a7340520aa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: kaggle in /home/students/s464979/.local/lib/python3.9/site-packages (1.6.6)\n", "Requirement already satisfied: bleach in /usr/local/lib/python3.9/dist-packages (from kaggle) (5.0.1)\n", "Requirement already satisfied: certifi in /usr/local/lib/python3.9/dist-packages (from kaggle) (2022.9.14)\n", "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.9/dist-packages (from kaggle) (2.8.2)\n", "Requirement already satisfied: python-slugify in /home/students/s464979/.local/lib/python3.9/site-packages (from kaggle) (8.0.4)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.9/dist-packages (from kaggle) (2.28.1)\n", "Requirement already satisfied: six>=1.10 in /usr/lib/python3/dist-packages (from kaggle) (1.16.0)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.9/dist-packages (from kaggle) (4.64.1)\n", "Requirement already satisfied: urllib3 in /usr/local/lib/python3.9/dist-packages (from kaggle) (1.26.12)\n", "Requirement already satisfied: webencodings in /usr/local/lib/python3.9/dist-packages (from bleach->kaggle) (0.5.1)\n", "Requirement already satisfied: text-unidecode>=1.3 in /home/students/s464979/.local/lib/python3.9/site-packages (from python-slugify->kaggle) (1.3)\n", "Requirement already satisfied: charset-normalizer<3,>=2 in /usr/local/lib/python3.9/dist-packages (from requests->kaggle) (2.1.1)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests->kaggle) (3.4)\n", "Note: you may need to restart the kernel to use updated packages.\n", "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.9/dist-packages (1.3.5)\n", "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.9/dist-packages (from pandas) (2.8.2)\n", "Requirement already satisfied: pytz>=2017.3 in /usr/lib/python3/dist-packages (from pandas) (2021.1)\n", "Requirement already satisfied: numpy>=1.17.3 in /home/students/s464979/.local/lib/python3.9/site-packages (from pandas) (1.26.4)\n", "Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.7.3->pandas) (1.16.0)\n", "Note: you may need to restart the kernel to use updated packages.\n", "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: numpy in /home/students/s464979/.local/lib/python3.9/site-packages (1.26.4)\n", "Note: you may need to restart the kernel to use updated packages.\n", "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: scikit-learn in /usr/lib/python3/dist-packages (0.23.2)\n", "Note: you may need to restart the kernel to use updated packages.\n", "Defaulting to user installation because normal site-packages is not writeable\n", "Requirement already satisfied: seaborn in /usr/local/lib/python3.9/dist-packages (0.12.0)\n", "Requirement already satisfied: numpy>=1.17 in /home/students/s464979/.local/lib/python3.9/site-packages (from seaborn) (1.26.4)\n", "Requirement already satisfied: pandas>=0.25 in /usr/local/lib/python3.9/dist-packages (from seaborn) (1.3.5)\n", "Requirement already satisfied: matplotlib>=3.1 in /usr/local/lib/python3.9/dist-packages (from seaborn) (3.6.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.9/dist-packages (from matplotlib>=3.1->seaborn) (1.0.6)\n", "Requirement already satisfied: cycler>=0.10 in /usr/lib/python3/dist-packages (from matplotlib>=3.1->seaborn) (0.10.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.9/dist-packages (from matplotlib>=3.1->seaborn) (4.38.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/lib/python3/dist-packages (from matplotlib>=3.1->seaborn) (1.3.1)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from matplotlib>=3.1->seaborn) (21.3)\n", "Requirement already satisfied: pillow>=6.2.0 in /home/students/s464979/.local/lib/python3.9/site-packages (from matplotlib>=3.1->seaborn) (10.2.0)\n", "Requirement already satisfied: pyparsing>=2.2.1 in /usr/lib/python3/dist-packages (from matplotlib>=3.1->seaborn) (2.4.7)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.9/dist-packages (from matplotlib>=3.1->seaborn) (2.8.2)\n", "Requirement already satisfied: pytz>=2017.3 in /usr/lib/python3/dist-packages (from pandas>=0.25->seaborn) (2021.1)\n", "Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.7->matplotlib>=3.1->seaborn) (1.16.0)\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "%pip install kaggle\n", "%pip install pandas\n", "%pip install numpy\n", "%pip install scikit-learn\n", "%pip install seaborn" ] }, { "cell_type": "code", "execution_count": null, "id": "f132ca66-2325-48e0-8bf8-ff983d8ad1ce", "metadata": {}, "outputs": [], "source": [ "!kaggle datasets download -d thedevastator/1-5-million-beer-reviews-from-beer-advocate" ] }, { "cell_type": "code", "execution_count": null, "id": "cd162ce4-9ca6-4631-86fc-55aa3704a1fb", "metadata": { "tags": [] }, "outputs": [], "source": [ "!kaggle datasets download -d" ] }, { "cell_type": "code", "execution_count": null, "id": "8516dbcf-1628-4059-a212-7bb36641151f", "metadata": {}, "outputs": [], "source": [ "!unzip -o 1-5-million-beer-reviews-from-beer-advocate.zip" ] }, { "cell_type": "code", "execution_count": 43, "id": "399983f4-351b-485e-835f-03caf3302743", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "from sklearn.model_selection import train_test_split\n", "import matplotlib.pyplot as plt\n", "from sklearn.preprocessing import MinMaxScaler\n", "\n", "pd.set_option('float_format', '{:f}'.format)" ] }, { "cell_type": "markdown", "id": "205c3fcf-fa0e-4d62-92f0-e8c72737e8b3", "metadata": { "tags": [] }, "source": [ "## Wczytywanie danych" ] }, { "cell_type": "code", "execution_count": 8, "id": "69561c75-0140-4f3d-93de-391aa344755c", "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", "
indexbrewery_idbrewery_namereview_timereview_overallreview_aromareview_appearancereview_profilenamebeer_stylereview_palatereview_tastebeer_namebeer_abvbeer_beerid
0010325Vecchio Birraio12348178231.5000002.0000002.500000stculesHefeweizen1.5000001.500000Sausa Weizen5.00000047986
1110325Vecchio Birraio12359150973.0000002.5000003.000000stculesEnglish Strong Ale3.0000003.000000Red Moon6.20000048213
2210325Vecchio Birraio12359166043.0000002.5000003.000000stculesForeign / Export Stout3.0000003.000000Black Horse Black Beer6.50000048215
3310325Vecchio Birraio12347251453.0000003.0000003.500000stculesGerman Pilsener2.5000003.000000Sausa Pils5.00000047969
441075Caldera Brewing Company12937352064.0000004.5000004.000000johnmichaelsenAmerican Double / Imperial IPA4.0000004.500000Cauldron DIPA7.70000064883
\n", "
" ], "text/plain": [ " index brewery_id brewery_name review_time review_overall \\\n", "0 0 10325 Vecchio Birraio 1234817823 1.500000 \n", "1 1 10325 Vecchio Birraio 1235915097 3.000000 \n", "2 2 10325 Vecchio Birraio 1235916604 3.000000 \n", "3 3 10325 Vecchio Birraio 1234725145 3.000000 \n", "4 4 1075 Caldera Brewing Company 1293735206 4.000000 \n", "\n", " review_aroma review_appearance review_profilename \\\n", "0 2.000000 2.500000 stcules \n", "1 2.500000 3.000000 stcules \n", "2 2.500000 3.000000 stcules \n", "3 3.000000 3.500000 stcules \n", "4 4.500000 4.000000 johnmichaelsen \n", "\n", " beer_style review_palate review_taste \\\n", "0 Hefeweizen 1.500000 1.500000 \n", "1 English Strong Ale 3.000000 3.000000 \n", "2 Foreign / Export Stout 3.000000 3.000000 \n", "3 German Pilsener 2.500000 3.000000 \n", "4 American Double / Imperial IPA 4.000000 4.500000 \n", "\n", " beer_name beer_abv beer_beerid \n", "0 Sausa Weizen 5.000000 47986 \n", "1 Red Moon 6.200000 48213 \n", "2 Black Horse Black Beer 6.500000 48215 \n", "3 Sausa Pils 5.000000 47969 \n", "4 Cauldron DIPA 7.700000 64883 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beers=pd.read_csv('beer_reviews.csv')\n", "\n", "beers.head()" ] }, { "cell_type": "code", "execution_count": 9, "id": "f54a599d-9cee-4b1f-9be1-c7bad6129760", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1586614 entries, 0 to 1586613\n", "Data columns (total 14 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 index 1586614 non-null int64 \n", " 1 brewery_id 1586614 non-null int64 \n", " 2 brewery_name 1586599 non-null object \n", " 3 review_time 1586614 non-null int64 \n", " 4 review_overall 1586614 non-null float64\n", " 5 review_aroma 1586614 non-null float64\n", " 6 review_appearance 1586614 non-null float64\n", " 7 review_profilename 1586266 non-null object \n", " 8 beer_style 1586614 non-null object \n", " 9 review_palate 1586614 non-null float64\n", " 10 review_taste 1586614 non-null float64\n", " 11 beer_name 1586614 non-null object \n", " 12 beer_abv 1518829 non-null float64\n", " 13 beer_beerid 1586614 non-null int64 \n", "dtypes: float64(6), int64(4), object(4)\n", "memory usage: 169.5+ MB\n" ] } ], "source": [ "beers.info()" ] }, { "cell_type": "markdown", "id": "81107f1b-bfd2-40ce-b1dd-a98be02c0e9f", "metadata": {}, "source": [ "### Czyszczenie " ] }, { "cell_type": "code", "execution_count": 49, "id": "a1c7ea8b-b9a4-4098-8e31-32ae0cf22075", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "index 0\n", "brewery_id 0\n", "brewery_name 0\n", "review_time 0\n", "review_overall 0\n", "review_aroma 0\n", "review_appearance 0\n", "review_profilename 0\n", "beer_style 0\n", "review_palate 0\n", "review_taste 0\n", "beer_name 0\n", "beer_abv 0\n", "beer_beerid 0\n", "dtype: int64" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beers.dropna(subset=['brewery_name'], inplace=True)\n", "beers.dropna(subset=['review_profilename'], inplace=True)\n", "beers.dropna(subset=['beer_abv'], inplace=True)\n", "\n", "beers.isnull().sum()" ] }, { "cell_type": "markdown", "id": "7e79db21-7b02-4f76-972f-da3092a0d22c", "metadata": {}, "source": [ "### Normalizacja" ] }, { "cell_type": "code", "execution_count": 22, "id": "e83dd914-b8cf-4e72-a9ea-f4e7f2f63791", "metadata": {}, "outputs": [], "source": [ "scaler = MinMaxScaler()\n", "\n", "beers[['review_overall', 'review_aroma', 'review_appearance', 'review_palate', 'review_taste', 'beer_abv', 'beer_beerid']] = scaler.fit_transform(beers[['review_overall', 'review_aroma', 'review_appearance', 'review_palate', 'review_taste', 'beer_abv', 'beer_beerid']])" ] }, { "cell_type": "markdown", "id": "46e10b78-fb00-4f7e-9c40-7ee08ebeeffe", "metadata": {}, "source": [ "### Podział na podzbiory" ] }, { "cell_type": "code", "execution_count": 24, "id": "e5f6f028-dfcb-4cc5-9bd1-bc9bd51c0a31", "metadata": {}, "outputs": [], "source": [ "beers_train, beers_dev_test = train_test_split(beers, test_size=0.2, random_state=1234)\n", "beers_dev, beers_test = train_test_split(beers_dev_test, test_size=0.5, random_state=1234)" ] }, { "cell_type": "code", "execution_count": 25, "id": "c9feafcc-3591-4d7b-8282-f0f2e2ebd782", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Liczba kolumn w każdym zbiorze: 14 kolumn\n", "Całość: 1518478 rekordów \n", "Train: 1214782 rekordów\n", "Dev: 151848 rekordów\n", "Test: 151848 rekordów\n" ] } ], "source": [ "print(f\"Liczba kolumn w każdym zbiorze: {beers.shape[1]} kolumn\")\n", "print(f\"Całość: {beers.shape[0]} rekordów \")\n", "print(f\"Train: {beers_train.shape[0]} rekordów\")\n", "print(f\"Dev: {beers_dev.shape[0]} rekordów\")\n", "print(f\"Test: {beers_test.shape[0]} rekordów\")" ] }, { "cell_type": "markdown", "id": "c811f83b-351e-45c0-bb0f-c1cf68afd669", "metadata": {}, "source": [ "### Przegląd danych" ] }, { "cell_type": "code", "execution_count": 51, "id": "75ffb6e4-3780-4e5f-b151-4b2929237e2a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Suma różnych piw: 44075\n", "Suma różnych styli: 104\n", "Suma różnych browarów: 5155\n" ] } ], "source": [ "print(f\"Suma różnych piw: {beers['beer_name'].nunique()}\")\n", "print(f\"Suma różnych styli: {beers['beer_style'].nunique()}\")\n", "print(f\"Suma różnych browarów: {beers['brewery_name'].nunique()}\")" ] }, { "cell_type": "code", "execution_count": 76, "id": "02571b1b-471c-4339-8422-c8fc27ce6055", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "style_counts = beers['beer_style'].value_counts()\n", "\n", "top_15_styles = style_counts.head(15) \n", "\n", "plt.bar(top_15_styles.index, top_15_styles.values)\n", "plt.xlabel('Styl')\n", "plt.ylabel('Liczba piw')\n", "plt.title('Ilość piw dla naliczniejszych styli')\n", "plt.xticks(rotation=90)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 91, "id": "0f1a2572-db91-4d8f-ad73-69327e60a606", "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", "
review_overallLiczba opini
beer_name
90 Minute IPA0.8290973289
Old Rasputin Russian Imperial Stout0.8348233110
Sierra Nevada Celebration Ale0.8337112999
India Pale Ale0.7707772960
Two Hearted Ale0.8660432727
\n", "
" ], "text/plain": [ " review_overall Liczba opini\n", "beer_name \n", "90 Minute IPA 0.829097 3289\n", "Old Rasputin Russian Imperial Stout 0.834823 3110\n", "Sierra Nevada Celebration Ale 0.833711 2999\n", "India Pale Ale 0.770777 2960\n", "Two Hearted Ale 0.866043 2727" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reviews = pd.DataFrame(beers.groupby('beer_name')['review_overall'].mean())\n", "reviews['Liczba opini'] = pd.DataFrame(beers.groupby('beer_name')['review_overall'].count())\n", "reviews = reviews.sort_values(by=['Liczba opini'], ascending=False)\n", "reviews.head()" ] }, { "cell_type": "code", "execution_count": 32, "id": "20444c91-b0be-44c8-ba99-b24290a054a0", "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", "
review_overallreview_aromareview_appearancereview_palatereview_tastebeer_abvbeer_beerid
count1518478.0001518478.0001518478.0001518478.0001518478.0001518478.0001518478.000
mean0.7650.6870.7700.6880.7010.1220.277
std0.1430.1740.1230.1700.1820.0400.282
min0.0000.0000.0000.0000.0000.0000.000
25%0.7000.6250.7000.6250.6250.0900.021
50%0.8000.7500.8000.7500.7500.1120.166
75%0.9000.7500.8000.7500.8750.1470.507
max1.0001.0001.0001.0001.0001.0001.000
\n", "
" ], "text/plain": [ " review_overall review_aroma review_appearance review_palate \\\n", "count 1518478.000 1518478.000 1518478.000 1518478.000 \n", "mean 0.765 0.687 0.770 0.688 \n", "std 0.143 0.174 0.123 0.170 \n", "min 0.000 0.000 0.000 0.000 \n", "25% 0.700 0.625 0.700 0.625 \n", "50% 0.800 0.750 0.800 0.750 \n", "75% 0.900 0.750 0.800 0.750 \n", "max 1.000 1.000 1.000 1.000 \n", "\n", " review_taste beer_abv beer_beerid \n", "count 1518478.000 1518478.000 1518478.000 \n", "mean 0.701 0.122 0.277 \n", "std 0.182 0.040 0.282 \n", "min 0.000 0.000 0.000 \n", "25% 0.625 0.090 0.021 \n", "50% 0.750 0.112 0.166 \n", "75% 0.875 0.147 0.507 \n", "max 1.000 1.000 1.000 " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beers[['review_overall', 'review_aroma', 'review_appearance', 'review_palate', 'review_taste', 'beer_abv', 'beer_beerid']].describe().applymap(lambda x: f\"{x:0.3f}\")" ] }, { "cell_type": "code", "execution_count": 33, "id": "98febfcb-f801-4fed-88c8-2c188cae111c", "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", "
review_overallreview_aromareview_appearancereview_palatereview_tastebeer_abvbeer_beerid
count1214782.01214782.01214782.01214782.01214782.01214782.01214782.0
mean0.80.70.80.70.70.10.3
std0.10.20.10.20.20.00.3
min0.00.00.00.00.00.00.0
25%0.70.60.70.60.60.10.0
50%0.80.80.80.80.80.10.2
75%0.90.80.80.80.90.10.5
max1.01.01.01.01.01.01.0
\n", "
" ], "text/plain": [ " review_overall review_aroma review_appearance review_palate \\\n", "count 1214782.0 1214782.0 1214782.0 1214782.0 \n", "mean 0.8 0.7 0.8 0.7 \n", "std 0.1 0.2 0.1 0.2 \n", "min 0.0 0.0 0.0 0.0 \n", "25% 0.7 0.6 0.7 0.6 \n", "50% 0.8 0.8 0.8 0.8 \n", "75% 0.9 0.8 0.8 0.8 \n", "max 1.0 1.0 1.0 1.0 \n", "\n", " review_taste beer_abv beer_beerid \n", "count 1214782.0 1214782.0 1214782.0 \n", "mean 0.7 0.1 0.3 \n", "std 0.2 0.0 0.3 \n", "min 0.0 0.0 0.0 \n", "25% 0.6 0.1 0.0 \n", "50% 0.8 0.1 0.2 \n", "75% 0.9 0.1 0.5 \n", "max 1.0 1.0 1.0 " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beers_train[['review_overall', 'review_aroma', 'review_appearance', 'review_palate', 'review_taste', 'beer_abv', 'beer_beerid']].describe().applymap(lambda x: f\"{x:0.1f}\")" ] }, { "cell_type": "code", "execution_count": 34, "id": "9b675fc2-42d8-4d3a-b6b9-3b35a0b8ab08", "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", "
review_overallreview_aromareview_appearancereview_palatereview_tastebeer_abvbeer_beerid
count151848.0151848.0151848.0151848.0151848.0151848.0151848.0
mean0.80.70.80.70.70.10.3
std0.10.20.10.20.20.00.3
min0.00.00.00.00.00.00.0
25%0.70.60.70.60.60.10.0
50%0.80.80.80.80.80.10.2
75%0.90.80.80.80.90.10.5
max1.01.01.01.01.00.71.0
\n", "
" ], "text/plain": [ " review_overall review_aroma review_appearance review_palate \\\n", "count 151848.0 151848.0 151848.0 151848.0 \n", "mean 0.8 0.7 0.8 0.7 \n", "std 0.1 0.2 0.1 0.2 \n", "min 0.0 0.0 0.0 0.0 \n", "25% 0.7 0.6 0.7 0.6 \n", "50% 0.8 0.8 0.8 0.8 \n", "75% 0.9 0.8 0.8 0.8 \n", "max 1.0 1.0 1.0 1.0 \n", "\n", " review_taste beer_abv beer_beerid \n", "count 151848.0 151848.0 151848.0 \n", "mean 0.7 0.1 0.3 \n", "std 0.2 0.0 0.3 \n", "min 0.0 0.0 0.0 \n", "25% 0.6 0.1 0.0 \n", "50% 0.8 0.1 0.2 \n", "75% 0.9 0.1 0.5 \n", "max 1.0 0.7 1.0 " ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beers_dev[['review_overall', 'review_aroma', 'review_appearance', 'review_palate', 'review_taste', 'beer_abv', 'beer_beerid']].describe().applymap(lambda x: f\"{x:0.1f}\")" ] }, { "cell_type": "code", "execution_count": 35, "id": "fa018c6f-4093-414a-aef3-48cedb1d82d2", "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", "
review_overallreview_aromareview_appearancereview_palatereview_tastebeer_abvbeer_beerid
count151848.0151848.0151848.0151848.0151848.0151848.0151848.0
mean0.80.70.80.70.70.10.3
std0.10.20.10.20.20.00.3
min0.00.00.00.00.00.00.0
25%0.70.60.70.60.60.10.0
50%0.80.80.80.80.80.10.2
75%0.90.80.80.80.90.10.5
max1.01.01.01.01.00.71.0
\n", "
" ], "text/plain": [ " review_overall review_aroma review_appearance review_palate \\\n", "count 151848.0 151848.0 151848.0 151848.0 \n", "mean 0.8 0.7 0.8 0.7 \n", "std 0.1 0.2 0.1 0.2 \n", "min 0.0 0.0 0.0 0.0 \n", "25% 0.7 0.6 0.7 0.6 \n", "50% 0.8 0.8 0.8 0.8 \n", "75% 0.9 0.8 0.8 0.8 \n", "max 1.0 1.0 1.0 1.0 \n", "\n", " review_taste beer_abv beer_beerid \n", "count 151848.0 151848.0 151848.0 \n", "mean 0.7 0.1 0.3 \n", "std 0.2 0.0 0.3 \n", "min 0.0 0.0 0.0 \n", "25% 0.6 0.1 0.0 \n", "50% 0.8 0.1 0.2 \n", "75% 0.9 0.1 0.5 \n", "max 1.0 0.7 1.0 " ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beers_test[['review_overall', 'review_aroma', 'review_appearance', 'review_palate', 'review_taste', 'beer_abv', 'beer_beerid']].describe().applymap(lambda x: f\"{x:0.1f}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "8ce7d432-8d8a-40b0-a247-300f9a39ad44", "metadata": {}, "outputs": [], "source": [] } ], "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.9.2" } }, "nbformat": 4, "nbformat_minor": 5 }