cheeseDM/cheese.ipynb

6689 lines
272 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "5f7c9658-c285-4854-96c0-e899fc55421b",
"metadata": {},
"source": [
"# DM project: cheese"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7f4f2b89-8257-468c-9f5e-a77e11b8b8ff",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from IPython.display import display, HTML\n",
"from mlxtend.preprocessing import TransactionEncoder\n",
"from mlxtend.frequent_patterns import apriori, association_rules\n",
"from geopy.geocoders import Nominatim\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import tqdm.notebook as tqdm\n",
"import random\n",
"import json\n",
"import os"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1a0afba8-692b-4377-a2ce-5114983e3bbb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>url</th>\n",
" <th>milk</th>\n",
" <th>country</th>\n",
" <th>region</th>\n",
" <th>family</th>\n",
" <th>type</th>\n",
" <th>fat_content</th>\n",
" <th>calcium_content</th>\n",
" <th>texture</th>\n",
" <th>rind</th>\n",
" <th>color</th>\n",
" <th>flavor</th>\n",
" <th>aroma</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" <th>synonyms</th>\n",
" <th>alt_spellings</th>\n",
" <th>producers</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aarewasser</td>\n",
" <td>https://www.cheese.com/aarewasser/</td>\n",
" <td>cow</td>\n",
" <td>Switzerland</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>buttery</td>\n",
" <td>washed</td>\n",
" <td>yellow</td>\n",
" <td>sweet</td>\n",
" <td>buttery</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Jumi</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Abbaye de Belloc</td>\n",
" <td>https://www.cheese.com/abbaye-de-belloc/</td>\n",
" <td>sheep</td>\n",
" <td>France</td>\n",
" <td>Pays Basque</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>creamy, dense, firm</td>\n",
" <td>natural</td>\n",
" <td>yellow</td>\n",
" <td>burnt caramel</td>\n",
" <td>lanoline</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Abbaye Notre-Dame de Belloc</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Abbaye de Belval</td>\n",
" <td>https://www.cheese.com/abbaye-de-belval/</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard</td>\n",
" <td>40-46%</td>\n",
" <td>NaN</td>\n",
" <td>elastic</td>\n",
" <td>washed</td>\n",
" <td>ivory</td>\n",
" <td>NaN</td>\n",
" <td>aromatic</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Abbaye de Citeaux</td>\n",
" <td>https://www.cheese.com/abbaye-de-citeaux/</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Burgundy</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft, artisan, brined</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>creamy, dense, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>acidic, milky, smooth</td>\n",
" <td>barnyardy, earthy</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Abbaye de Tamié</td>\n",
" <td>https://www.cheese.com/tamie/</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Savoie</td>\n",
" <td>NaN</td>\n",
" <td>soft, artisan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>creamy, open, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>fruity, nutty</td>\n",
" <td>perfumed, pungent</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>Tamié, Trappiste de Tamie, Abbey of Tamie</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1182</th>\n",
" <td>Sveciaost</td>\n",
" <td>https://www.cheese.com/sveciaost/</td>\n",
" <td>cow</td>\n",
" <td>Sweden</td>\n",
" <td>Low-laying regions</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, brined</td>\n",
" <td>45%</td>\n",
" <td>NaN</td>\n",
" <td>creamy, supple</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>acidic</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1183</th>\n",
" <td>Swag</td>\n",
" <td>https://www.cheese.com/swag/</td>\n",
" <td>goat</td>\n",
" <td>Australia</td>\n",
" <td>South Australia</td>\n",
" <td>NaN</td>\n",
" <td>fresh firm, artisan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>creamy, crumbly</td>\n",
" <td>ash coated</td>\n",
" <td>white</td>\n",
" <td>acidic, creamy</td>\n",
" <td>fresh</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Woodside Cheese Wrights</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1184</th>\n",
" <td>Swaledale</td>\n",
" <td>https://www.cheese.com/swaledale/</td>\n",
" <td>sheep</td>\n",
" <td>England</td>\n",
" <td>Swaledale, North Yorkshire</td>\n",
" <td>NaN</td>\n",
" <td>hard</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi firm</td>\n",
" <td>NaN</td>\n",
" <td>yellow</td>\n",
" <td>smooth, sweet</td>\n",
" <td>floral</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Swaledale Sheep Cheese</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1185</th>\n",
" <td>Sweet Style Swiss</td>\n",
" <td>https://www.cheese.com/sweet-style-swiss/</td>\n",
" <td>NaN</td>\n",
" <td>Switzerland</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>firm, supple</td>\n",
" <td>waxed</td>\n",
" <td>NaN</td>\n",
" <td>nutty</td>\n",
" <td>nutty, sweet</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1186</th>\n",
" <td>Swiss cheese</td>\n",
" <td>https://www.cheese.com/swiss/</td>\n",
" <td>cow</td>\n",
" <td>United States</td>\n",
" <td>NaN</td>\n",
" <td>Swiss Cheese</td>\n",
" <td>hard, artisan, processed</td>\n",
" <td>7.8 g/100g</td>\n",
" <td>NaN</td>\n",
" <td>firm</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>nutty, sweet</td>\n",
" <td>NaN</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>American Swiss Cheese</td>\n",
" <td>NaN</td>\n",
" <td>Various</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1187 rows × 19 columns</p>\n",
"</div>"
],
"text/plain": [
" cheese url milk \\\n",
"0 Aarewasser https://www.cheese.com/aarewasser/ cow \n",
"1 Abbaye de Belloc https://www.cheese.com/abbaye-de-belloc/ sheep \n",
"2 Abbaye de Belval https://www.cheese.com/abbaye-de-belval/ cow \n",
"3 Abbaye de Citeaux https://www.cheese.com/abbaye-de-citeaux/ cow \n",
"4 Abbaye de Tamié https://www.cheese.com/tamie/ cow \n",
"... ... ... ... \n",
"1182 Sveciaost https://www.cheese.com/sveciaost/ cow \n",
"1183 Swag https://www.cheese.com/swag/ goat \n",
"1184 Swaledale https://www.cheese.com/swaledale/ sheep \n",
"1185 Sweet Style Swiss https://www.cheese.com/sweet-style-swiss/ NaN \n",
"1186 Swiss cheese https://www.cheese.com/swiss/ cow \n",
"\n",
" country region family \\\n",
"0 Switzerland NaN NaN \n",
"1 France Pays Basque NaN \n",
"2 France NaN NaN \n",
"3 France Burgundy NaN \n",
"4 France Savoie NaN \n",
"... ... ... ... \n",
"1182 Sweden Low-laying regions NaN \n",
"1183 Australia South Australia NaN \n",
"1184 England Swaledale, North Yorkshire NaN \n",
"1185 Switzerland NaN NaN \n",
"1186 United States NaN Swiss Cheese \n",
"\n",
" type fat_content calcium_content \\\n",
"0 semi-soft NaN NaN \n",
"1 semi-hard, artisan NaN NaN \n",
"2 semi-hard 40-46% NaN \n",
"3 semi-soft, artisan, brined NaN NaN \n",
"4 soft, artisan NaN NaN \n",
"... ... ... ... \n",
"1182 semi-hard, brined 45% NaN \n",
"1183 fresh firm, artisan NaN NaN \n",
"1184 hard NaN NaN \n",
"1185 semi-hard, artisan NaN NaN \n",
"1186 hard, artisan, processed 7.8 g/100g NaN \n",
"\n",
" texture rind color flavor \\\n",
"0 buttery washed yellow sweet \n",
"1 creamy, dense, firm natural yellow burnt caramel \n",
"2 elastic washed ivory NaN \n",
"3 creamy, dense, smooth washed white acidic, milky, smooth \n",
"4 creamy, open, smooth washed white fruity, nutty \n",
"... ... ... ... ... \n",
"1182 creamy, supple rindless pale yellow acidic \n",
"1183 creamy, crumbly ash coated white acidic, creamy \n",
"1184 semi firm NaN yellow smooth, sweet \n",
"1185 firm, supple waxed NaN nutty \n",
"1186 firm rindless pale yellow nutty, sweet \n",
"\n",
" aroma vegetarian vegan synonyms \\\n",
"0 buttery False False NaN \n",
"1 lanoline True False Abbaye Notre-Dame de Belloc \n",
"2 aromatic False False NaN \n",
"3 barnyardy, earthy False False NaN \n",
"4 perfumed, pungent False False NaN \n",
"... ... ... ... ... \n",
"1182 NaN False False NaN \n",
"1183 fresh True False NaN \n",
"1184 floral True False Swaledale Sheep Cheese \n",
"1185 nutty, sweet False False NaN \n",
"1186 NaN True False American Swiss Cheese \n",
"\n",
" alt_spellings producers \n",
"0 NaN Jumi \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 Tamié, Trappiste de Tamie, Abbey of Tamie NaN \n",
"... ... ... \n",
"1182 NaN NaN \n",
"1183 NaN Woodside Cheese Wrights \n",
"1184 NaN NaN \n",
"1185 NaN NaN \n",
"1186 NaN Various \n",
"\n",
"[1187 rows x 19 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data=pd.read_csv(\"cheeses.csv\")\n",
"data"
]
},
{
"cell_type": "markdown",
"id": "bf3b548c-5ac4-4126-9ae9-5578ad158015",
"metadata": {},
"source": [
"## Cleaning and pre-processing"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "2018aac2-6f3d-489a-b5d0-90b7c7793076",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'brown', 'red', 'cream', 'pink and white', 'white', 'pale white', 'pale yellow', 'orange', 'straw', 'golden yellow', 'golden orange', nan, 'blue', 'yellow', 'blue-grey', 'ivory', 'brownish yellow', 'green'}\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>url</th>\n",
" <th>milk</th>\n",
" <th>country</th>\n",
" <th>region</th>\n",
" <th>family</th>\n",
" <th>type</th>\n",
" <th>fat_content</th>\n",
" <th>calcium_content</th>\n",
" <th>texture</th>\n",
" <th>rind</th>\n",
" <th>color</th>\n",
" <th>flavor</th>\n",
" <th>aroma</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" <th>synonyms</th>\n",
" <th>alt_spellings</th>\n",
" <th>producers</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Acapella</td>\n",
" <td>https://www.cheese.com/acapella/</td>\n",
" <td>goat</td>\n",
" <td>United States</td>\n",
" <td>California</td>\n",
" <td>NaN</td>\n",
" <td>soft, soft-ripened</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>buttery</td>\n",
" <td>fresh, herbal</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Acorn</td>\n",
" <td>https://www.cheese.com/acorn/</td>\n",
" <td>sheep</td>\n",
" <td>United Kingdom</td>\n",
" <td>Bethania</td>\n",
" <td>NaN</td>\n",
" <td>hard, artisan</td>\n",
" <td>52%</td>\n",
" <td>NaN</td>\n",
" <td>crumbly, firm</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>burnt caramel, citrusy, herbaceous</td>\n",
" <td>fruity</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Afuega'l Pitu</td>\n",
" <td>https://www.cheese.com/afuegal-pitu/</td>\n",
" <td>cow</td>\n",
" <td>Spain</td>\n",
" <td>Asturias</td>\n",
" <td>NaN</td>\n",
" <td>soft, artisan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>smooth</td>\n",
" <td>cloth wrapped</td>\n",
" <td>NaN</td>\n",
" <td>spicy, strong</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>Alpe di Frabosa</td>\n",
" <td>https://www.cheese.com/alpe-di-frabosa/</td>\n",
" <td>cow</td>\n",
" <td>Italy</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>bitter</td>\n",
" <td>milky, mushroom</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>Alpicrème</td>\n",
" <td>https://www.cheese.com/alpicreme/</td>\n",
" <td>goat</td>\n",
" <td>France</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>soft</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1172</th>\n",
" <td>Strathdon Blue</td>\n",
" <td>https://www.cheese.com/strathdon-blue/</td>\n",
" <td>cow</td>\n",
" <td>Scotland</td>\n",
" <td>Tain</td>\n",
" <td>Blue</td>\n",
" <td>semi-soft</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>creamy</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>creamy, spicy</td>\n",
" <td>aromatic, rich</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Highland Fine Cheeses Limited</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1175</th>\n",
" <td>String Cheese</td>\n",
" <td>https://www.cheese.com/string/</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>chewy, firm, stringy</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1177</th>\n",
" <td>Sulguni</td>\n",
" <td>https://www.cheese.com/sulguni/</td>\n",
" <td>buffalo, cow</td>\n",
" <td>Georgia</td>\n",
" <td>Svaneti, Samegrelo</td>\n",
" <td>NaN</td>\n",
" <td>semi-firm</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>dense, elastic</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>salty, smokey , sour</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Georgian Pickle Cheese</td>\n",
" <td>Megruli Sulguni, Shebolili Megruli Sulguni</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1181</th>\n",
" <td>Sussex Slipcote</td>\n",
" <td>https://www.cheese.com/sussex-slipcote/</td>\n",
" <td>sheep</td>\n",
" <td>England</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>soft</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>sharp</td>\n",
" <td>NaN</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>High Weald Dairy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1185</th>\n",
" <td>Sweet Style Swiss</td>\n",
" <td>https://www.cheese.com/sweet-style-swiss/</td>\n",
" <td>NaN</td>\n",
" <td>Switzerland</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>firm, supple</td>\n",
" <td>waxed</td>\n",
" <td>NaN</td>\n",
" <td>nutty</td>\n",
" <td>nutty, sweet</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>142 rows × 19 columns</p>\n",
"</div>"
],
"text/plain": [
" cheese url \\\n",
"10 Acapella https://www.cheese.com/acapella/ \n",
"13 Acorn https://www.cheese.com/acorn/ \n",
"19 Afuega'l Pitu https://www.cheese.com/afuegal-pitu/ \n",
"48 Alpe di Frabosa https://www.cheese.com/alpe-di-frabosa/ \n",
"50 Alpicrème https://www.cheese.com/alpicreme/ \n",
"... ... ... \n",
"1172 Strathdon Blue https://www.cheese.com/strathdon-blue/ \n",
"1175 String Cheese https://www.cheese.com/string/ \n",
"1177 Sulguni https://www.cheese.com/sulguni/ \n",
"1181 Sussex Slipcote https://www.cheese.com/sussex-slipcote/ \n",
"1185 Sweet Style Swiss https://www.cheese.com/sweet-style-swiss/ \n",
"\n",
" milk country region family \\\n",
"10 goat United States California NaN \n",
"13 sheep United Kingdom Bethania NaN \n",
"19 cow Spain Asturias NaN \n",
"48 cow Italy NaN NaN \n",
"50 goat France NaN NaN \n",
"... ... ... ... ... \n",
"1172 cow Scotland Tain Blue \n",
"1175 NaN NaN NaN NaN \n",
"1177 buffalo, cow Georgia Svaneti, Samegrelo NaN \n",
"1181 sheep England NaN NaN \n",
"1185 NaN Switzerland NaN NaN \n",
"\n",
" type fat_content calcium_content texture \\\n",
"10 soft, soft-ripened NaN NaN NaN \n",
"13 hard, artisan 52% NaN crumbly, firm \n",
"19 soft, artisan NaN NaN smooth \n",
"48 semi-soft NaN NaN NaN \n",
"50 soft NaN NaN NaN \n",
"... ... ... ... ... \n",
"1172 semi-soft NaN NaN creamy \n",
"1175 semi-hard NaN NaN chewy, firm, stringy \n",
"1177 semi-firm NaN NaN dense, elastic \n",
"1181 soft NaN NaN NaN \n",
"1185 semi-hard, artisan NaN NaN firm, supple \n",
"\n",
" rind color flavor \\\n",
"10 NaN NaN buttery \n",
"13 NaN NaN burnt caramel, citrusy, herbaceous \n",
"19 cloth wrapped NaN spicy, strong \n",
"48 NaN NaN bitter \n",
"50 NaN NaN NaN \n",
"... ... ... ... \n",
"1172 NaN NaN creamy, spicy \n",
"1175 NaN NaN NaN \n",
"1177 NaN NaN salty, smokey , sour \n",
"1181 NaN NaN sharp \n",
"1185 waxed NaN nutty \n",
"\n",
" aroma vegetarian vegan synonyms \\\n",
"10 fresh, herbal False False NaN \n",
"13 fruity True False NaN \n",
"19 NaN False False NaN \n",
"48 milky, mushroom False False NaN \n",
"50 NaN False False NaN \n",
"... ... ... ... ... \n",
"1172 aromatic, rich True False NaN \n",
"1175 NaN NaN NaN NaN \n",
"1177 NaN NaN NaN Georgian Pickle Cheese \n",
"1181 NaN True False NaN \n",
"1185 nutty, sweet False False NaN \n",
"\n",
" alt_spellings \\\n",
"10 NaN \n",
"13 NaN \n",
"19 NaN \n",
"48 NaN \n",
"50 NaN \n",
"... ... \n",
"1172 NaN \n",
"1175 NaN \n",
"1177 Megruli Sulguni, Shebolili Megruli Sulguni \n",
"1181 NaN \n",
"1185 NaN \n",
"\n",
" producers \n",
"10 NaN \n",
"13 NaN \n",
"19 NaN \n",
"48 NaN \n",
"50 NaN \n",
"... ... \n",
"1172 Highland Fine Cheeses Limited \n",
"1175 NaN \n",
"1177 NaN \n",
"1181 High Weald Dairy \n",
"1185 NaN \n",
"\n",
"[142 rows x 19 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(set(data[\"color\"]))\n",
"data[pd.isnull(data[\"color\"])]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a0a77563-518e-4808-b744-9fc0c76763fe",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1162\n",
"939\n"
]
}
],
"source": [
"print(len(data[pd.isnull(data[\"calcium_content\"])]))\n",
"print(len(data[pd.isnull(data[\"fat_content\"])]))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c8489ffa-1067-4eb7-b65a-2fa18fdb4b04",
"metadata": {},
"outputs": [],
"source": [
"del data[\"alt_spellings\"]\n",
"del data[\"producers\"]\n",
"del data[\"calcium_content\"]\n",
"del data[\"url\"]\n",
"del data[\"fat_content\"]\n",
"del data[\"synonyms\"]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "5379265a-cd49-41fa-845c-bfae33bb8f5a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>milk</th>\n",
" <th>country</th>\n",
" <th>region</th>\n",
" <th>family</th>\n",
" <th>type</th>\n",
" <th>texture</th>\n",
" <th>rind</th>\n",
" <th>color</th>\n",
" <th>flavor</th>\n",
" <th>aroma</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aarewasser</td>\n",
" <td>cow</td>\n",
" <td>Switzerland</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft</td>\n",
" <td>buttery</td>\n",
" <td>washed</td>\n",
" <td>yellow</td>\n",
" <td>sweet</td>\n",
" <td>buttery</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Abbaye de Belloc</td>\n",
" <td>sheep</td>\n",
" <td>France</td>\n",
" <td>Pays Basque</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>creamy, dense, firm</td>\n",
" <td>natural</td>\n",
" <td>yellow</td>\n",
" <td>burnt caramel</td>\n",
" <td>lanoline</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Abbaye de Belval</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard</td>\n",
" <td>elastic</td>\n",
" <td>washed</td>\n",
" <td>ivory</td>\n",
" <td>NaN</td>\n",
" <td>aromatic</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Abbaye de Citeaux</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Burgundy</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft, artisan, brined</td>\n",
" <td>creamy, dense, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>acidic, milky, smooth</td>\n",
" <td>barnyardy, earthy</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Abbaye de Tamié</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Savoie</td>\n",
" <td>NaN</td>\n",
" <td>soft, artisan</td>\n",
" <td>creamy, open, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>fruity, nutty</td>\n",
" <td>perfumed, pungent</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1182</th>\n",
" <td>Sveciaost</td>\n",
" <td>cow</td>\n",
" <td>Sweden</td>\n",
" <td>Low-laying regions</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, brined</td>\n",
" <td>creamy, supple</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>acidic</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1183</th>\n",
" <td>Swag</td>\n",
" <td>goat</td>\n",
" <td>Australia</td>\n",
" <td>South Australia</td>\n",
" <td>NaN</td>\n",
" <td>fresh firm, artisan</td>\n",
" <td>creamy, crumbly</td>\n",
" <td>ash coated</td>\n",
" <td>white</td>\n",
" <td>acidic, creamy</td>\n",
" <td>fresh</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1184</th>\n",
" <td>Swaledale</td>\n",
" <td>sheep</td>\n",
" <td>England</td>\n",
" <td>Swaledale, North Yorkshire</td>\n",
" <td>NaN</td>\n",
" <td>hard</td>\n",
" <td>semi firm</td>\n",
" <td>NaN</td>\n",
" <td>yellow</td>\n",
" <td>smooth, sweet</td>\n",
" <td>floral</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1185</th>\n",
" <td>Sweet Style Swiss</td>\n",
" <td>NaN</td>\n",
" <td>Switzerland</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>firm, supple</td>\n",
" <td>waxed</td>\n",
" <td>NaN</td>\n",
" <td>nutty</td>\n",
" <td>nutty, sweet</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1186</th>\n",
" <td>Swiss cheese</td>\n",
" <td>cow</td>\n",
" <td>United States</td>\n",
" <td>NaN</td>\n",
" <td>Swiss Cheese</td>\n",
" <td>hard, artisan, processed</td>\n",
" <td>firm</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>nutty, sweet</td>\n",
" <td>NaN</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1187 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" cheese milk country region \\\n",
"0 Aarewasser cow Switzerland NaN \n",
"1 Abbaye de Belloc sheep France Pays Basque \n",
"2 Abbaye de Belval cow France NaN \n",
"3 Abbaye de Citeaux cow France Burgundy \n",
"4 Abbaye de Tamié cow France Savoie \n",
"... ... ... ... ... \n",
"1182 Sveciaost cow Sweden Low-laying regions \n",
"1183 Swag goat Australia South Australia \n",
"1184 Swaledale sheep England Swaledale, North Yorkshire \n",
"1185 Sweet Style Swiss NaN Switzerland NaN \n",
"1186 Swiss cheese cow United States NaN \n",
"\n",
" family type texture \\\n",
"0 NaN semi-soft buttery \n",
"1 NaN semi-hard, artisan creamy, dense, firm \n",
"2 NaN semi-hard elastic \n",
"3 NaN semi-soft, artisan, brined creamy, dense, smooth \n",
"4 NaN soft, artisan creamy, open, smooth \n",
"... ... ... ... \n",
"1182 NaN semi-hard, brined creamy, supple \n",
"1183 NaN fresh firm, artisan creamy, crumbly \n",
"1184 NaN hard semi firm \n",
"1185 NaN semi-hard, artisan firm, supple \n",
"1186 Swiss Cheese hard, artisan, processed firm \n",
"\n",
" rind color flavor aroma \\\n",
"0 washed yellow sweet buttery \n",
"1 natural yellow burnt caramel lanoline \n",
"2 washed ivory NaN aromatic \n",
"3 washed white acidic, milky, smooth barnyardy, earthy \n",
"4 washed white fruity, nutty perfumed, pungent \n",
"... ... ... ... ... \n",
"1182 rindless pale yellow acidic NaN \n",
"1183 ash coated white acidic, creamy fresh \n",
"1184 NaN yellow smooth, sweet floral \n",
"1185 waxed NaN nutty nutty, sweet \n",
"1186 rindless pale yellow nutty, sweet NaN \n",
"\n",
" vegetarian vegan \n",
"0 False False \n",
"1 True False \n",
"2 False False \n",
"3 False False \n",
"4 False False \n",
"... ... ... \n",
"1182 False False \n",
"1183 True False \n",
"1184 True False \n",
"1185 False False \n",
"1186 True False \n",
"\n",
"[1187 rows x 13 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "633ed80e-e416-41f6-ae58-b86ce4c132af",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1181 rows remaining\n"
]
}
],
"source": [
"data=data.dropna(subset=[\"country\",\"region\"], how=\"all\")\n",
"data=data.fillna(value={\"country\":\"\"})\n",
"data=data.fillna(value={\"region\":\"\"})\n",
"print(f\"{len(data)} rows remaining\")"
]
},
{
"cell_type": "markdown",
"id": "fd66568f-78d4-4e1a-a91c-8ec483b4b03c",
"metadata": {},
"source": [
"We removed 6 rows for which we could not find a suitable location. "
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "5a4c0e30-8535-498b-9a9e-0d7d232d4eb7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>milk</th>\n",
" <th>country</th>\n",
" <th>region</th>\n",
" <th>family</th>\n",
" <th>type</th>\n",
" <th>texture</th>\n",
" <th>rind</th>\n",
" <th>color</th>\n",
" <th>flavor</th>\n",
" <th>aroma</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aarewasser</td>\n",
" <td>cow</td>\n",
" <td>Switzerland</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-soft</td>\n",
" <td>buttery</td>\n",
" <td>washed</td>\n",
" <td>yellow</td>\n",
" <td>sweet</td>\n",
" <td>buttery</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Abbaye de Belloc</td>\n",
" <td>sheep</td>\n",
" <td>France</td>\n",
" <td>Pays Basque</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>creamy, dense, firm</td>\n",
" <td>natural</td>\n",
" <td>yellow</td>\n",
" <td>burnt caramel</td>\n",
" <td>lanoline</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Abbaye de Belval</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-hard</td>\n",
" <td>elastic</td>\n",
" <td>washed</td>\n",
" <td>ivory</td>\n",
" <td>NaN</td>\n",
" <td>aromatic</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Abbaye de Citeaux</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Burgundy</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft, artisan, brined</td>\n",
" <td>creamy, dense, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>acidic, milky, smooth</td>\n",
" <td>barnyardy, earthy</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Abbaye de Tamié</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Savoie</td>\n",
" <td>NaN</td>\n",
" <td>soft, artisan</td>\n",
" <td>creamy, open, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>fruity, nutty</td>\n",
" <td>perfumed, pungent</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1182</th>\n",
" <td>Sveciaost</td>\n",
" <td>cow</td>\n",
" <td>Sweden</td>\n",
" <td>Low-laying regions</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, brined</td>\n",
" <td>creamy, supple</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>acidic</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1183</th>\n",
" <td>Swag</td>\n",
" <td>goat</td>\n",
" <td>Australia</td>\n",
" <td>South Australia</td>\n",
" <td>NaN</td>\n",
" <td>fresh firm, artisan</td>\n",
" <td>creamy, crumbly</td>\n",
" <td>ash coated</td>\n",
" <td>white</td>\n",
" <td>acidic, creamy</td>\n",
" <td>fresh</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1184</th>\n",
" <td>Swaledale</td>\n",
" <td>sheep</td>\n",
" <td>England</td>\n",
" <td>Swaledale, North Yorkshire</td>\n",
" <td>NaN</td>\n",
" <td>hard</td>\n",
" <td>semi firm</td>\n",
" <td>NaN</td>\n",
" <td>yellow</td>\n",
" <td>smooth, sweet</td>\n",
" <td>floral</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1185</th>\n",
" <td>Sweet Style Swiss</td>\n",
" <td>NaN</td>\n",
" <td>Switzerland</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>firm, supple</td>\n",
" <td>waxed</td>\n",
" <td>NaN</td>\n",
" <td>nutty</td>\n",
" <td>nutty, sweet</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1186</th>\n",
" <td>Swiss cheese</td>\n",
" <td>cow</td>\n",
" <td>United States</td>\n",
" <td></td>\n",
" <td>Swiss Cheese</td>\n",
" <td>hard, artisan, processed</td>\n",
" <td>firm</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>nutty, sweet</td>\n",
" <td>NaN</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1181 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" cheese milk country region \\\n",
"0 Aarewasser cow Switzerland \n",
"1 Abbaye de Belloc sheep France Pays Basque \n",
"2 Abbaye de Belval cow France \n",
"3 Abbaye de Citeaux cow France Burgundy \n",
"4 Abbaye de Tamié cow France Savoie \n",
"... ... ... ... ... \n",
"1182 Sveciaost cow Sweden Low-laying regions \n",
"1183 Swag goat Australia South Australia \n",
"1184 Swaledale sheep England Swaledale, North Yorkshire \n",
"1185 Sweet Style Swiss NaN Switzerland \n",
"1186 Swiss cheese cow United States \n",
"\n",
" family type texture \\\n",
"0 NaN semi-soft buttery \n",
"1 NaN semi-hard, artisan creamy, dense, firm \n",
"2 NaN semi-hard elastic \n",
"3 NaN semi-soft, artisan, brined creamy, dense, smooth \n",
"4 NaN soft, artisan creamy, open, smooth \n",
"... ... ... ... \n",
"1182 NaN semi-hard, brined creamy, supple \n",
"1183 NaN fresh firm, artisan creamy, crumbly \n",
"1184 NaN hard semi firm \n",
"1185 NaN semi-hard, artisan firm, supple \n",
"1186 Swiss Cheese hard, artisan, processed firm \n",
"\n",
" rind color flavor aroma \\\n",
"0 washed yellow sweet buttery \n",
"1 natural yellow burnt caramel lanoline \n",
"2 washed ivory NaN aromatic \n",
"3 washed white acidic, milky, smooth barnyardy, earthy \n",
"4 washed white fruity, nutty perfumed, pungent \n",
"... ... ... ... ... \n",
"1182 rindless pale yellow acidic NaN \n",
"1183 ash coated white acidic, creamy fresh \n",
"1184 NaN yellow smooth, sweet floral \n",
"1185 waxed NaN nutty nutty, sweet \n",
"1186 rindless pale yellow nutty, sweet NaN \n",
"\n",
" vegetarian vegan \n",
"0 False False \n",
"1 True False \n",
"2 False False \n",
"3 False False \n",
"4 False False \n",
"... ... ... \n",
"1182 False False \n",
"1183 True False \n",
"1184 True False \n",
"1185 False False \n",
"1186 True False \n",
"\n",
"[1181 rows x 13 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "7ef7494b-ff08-40a5-890f-e0f718cf2842",
"metadata": {},
"outputs": [],
"source": [
"data.loc[data.country.str.contains(\"England, Great Britain, United Kingdom\")|data.country.str.contains(\"England, United Kingdom\"),\"country\"]=\"England\"\n",
"data.loc[data.country.str.contains(\"Scotland\"),\"country\"]=\"Scotland\"\n",
"data.loc[data.country.str.contains(\"Great Britain, United Kingdom, Wales\")|data.country.str.contains(\"United Kingdom, Wales\"),\"country\"]=\"Wales\"\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "fb044984-c33c-492c-91a2-4e9fff29ceb3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>index</th>\n",
" <th>cheese</th>\n",
" <th>milk</th>\n",
" <th>country</th>\n",
" <th>region</th>\n",
" <th>family</th>\n",
" <th>type</th>\n",
" <th>texture</th>\n",
" <th>rind</th>\n",
" <th>color</th>\n",
" <th>flavor</th>\n",
" <th>aroma</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>Aarewasser</td>\n",
" <td>cow</td>\n",
" <td>Switzerland</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-soft</td>\n",
" <td>buttery</td>\n",
" <td>washed</td>\n",
" <td>yellow</td>\n",
" <td>sweet</td>\n",
" <td>buttery</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>Abbaye de Belloc</td>\n",
" <td>sheep</td>\n",
" <td>France</td>\n",
" <td>Pays Basque</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>creamy, dense, firm</td>\n",
" <td>natural</td>\n",
" <td>yellow</td>\n",
" <td>burnt caramel</td>\n",
" <td>lanoline</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>Abbaye de Belval</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-hard</td>\n",
" <td>elastic</td>\n",
" <td>washed</td>\n",
" <td>ivory</td>\n",
" <td>NaN</td>\n",
" <td>aromatic</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>Abbaye de Citeaux</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Burgundy</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft, artisan, brined</td>\n",
" <td>creamy, dense, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>acidic, milky, smooth</td>\n",
" <td>barnyardy, earthy</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>Abbaye de Tamié</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Savoie</td>\n",
" <td>NaN</td>\n",
" <td>soft, artisan</td>\n",
" <td>creamy, open, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>fruity, nutty</td>\n",
" <td>perfumed, pungent</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1135</th>\n",
" <td>1182</td>\n",
" <td>Sveciaost</td>\n",
" <td>cow</td>\n",
" <td>Sweden</td>\n",
" <td>Low-laying regions</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, brined</td>\n",
" <td>creamy, supple</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>acidic</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1136</th>\n",
" <td>1183</td>\n",
" <td>Swag</td>\n",
" <td>goat</td>\n",
" <td>Australia</td>\n",
" <td>South Australia</td>\n",
" <td>NaN</td>\n",
" <td>fresh firm, artisan</td>\n",
" <td>creamy, crumbly</td>\n",
" <td>ash coated</td>\n",
" <td>white</td>\n",
" <td>acidic, creamy</td>\n",
" <td>fresh</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1137</th>\n",
" <td>1184</td>\n",
" <td>Swaledale</td>\n",
" <td>sheep</td>\n",
" <td>England</td>\n",
" <td>Swaledale, North Yorkshire</td>\n",
" <td>NaN</td>\n",
" <td>hard</td>\n",
" <td>semi firm</td>\n",
" <td>NaN</td>\n",
" <td>yellow</td>\n",
" <td>smooth, sweet</td>\n",
" <td>floral</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1138</th>\n",
" <td>1185</td>\n",
" <td>Sweet Style Swiss</td>\n",
" <td>NaN</td>\n",
" <td>Switzerland</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>firm, supple</td>\n",
" <td>waxed</td>\n",
" <td>NaN</td>\n",
" <td>nutty</td>\n",
" <td>nutty, sweet</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1139</th>\n",
" <td>1186</td>\n",
" <td>Swiss cheese</td>\n",
" <td>cow</td>\n",
" <td>United States</td>\n",
" <td></td>\n",
" <td>Swiss Cheese</td>\n",
" <td>hard, artisan, processed</td>\n",
" <td>firm</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>nutty, sweet</td>\n",
" <td>NaN</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1140 rows × 14 columns</p>\n",
"</div>"
],
"text/plain": [
" index cheese milk country \\\n",
"0 0 Aarewasser cow Switzerland \n",
"1 1 Abbaye de Belloc sheep France \n",
"2 2 Abbaye de Belval cow France \n",
"3 3 Abbaye de Citeaux cow France \n",
"4 4 Abbaye de Tamié cow France \n",
"... ... ... ... ... \n",
"1135 1182 Sveciaost cow Sweden \n",
"1136 1183 Swag goat Australia \n",
"1137 1184 Swaledale sheep England \n",
"1138 1185 Sweet Style Swiss NaN Switzerland \n",
"1139 1186 Swiss cheese cow United States \n",
"\n",
" region family type \\\n",
"0 NaN semi-soft \n",
"1 Pays Basque NaN semi-hard, artisan \n",
"2 NaN semi-hard \n",
"3 Burgundy NaN semi-soft, artisan, brined \n",
"4 Savoie NaN soft, artisan \n",
"... ... ... ... \n",
"1135 Low-laying regions NaN semi-hard, brined \n",
"1136 South Australia NaN fresh firm, artisan \n",
"1137 Swaledale, North Yorkshire NaN hard \n",
"1138 NaN semi-hard, artisan \n",
"1139 Swiss Cheese hard, artisan, processed \n",
"\n",
" texture rind color flavor \\\n",
"0 buttery washed yellow sweet \n",
"1 creamy, dense, firm natural yellow burnt caramel \n",
"2 elastic washed ivory NaN \n",
"3 creamy, dense, smooth washed white acidic, milky, smooth \n",
"4 creamy, open, smooth washed white fruity, nutty \n",
"... ... ... ... ... \n",
"1135 creamy, supple rindless pale yellow acidic \n",
"1136 creamy, crumbly ash coated white acidic, creamy \n",
"1137 semi firm NaN yellow smooth, sweet \n",
"1138 firm, supple waxed NaN nutty \n",
"1139 firm rindless pale yellow nutty, sweet \n",
"\n",
" aroma vegetarian vegan \n",
"0 buttery False False \n",
"1 lanoline True False \n",
"2 aromatic False False \n",
"3 barnyardy, earthy False False \n",
"4 perfumed, pungent False False \n",
"... ... ... ... \n",
"1135 NaN False False \n",
"1136 fresh True False \n",
"1137 floral True False \n",
"1138 nutty, sweet False False \n",
"1139 NaN True False \n",
"\n",
"[1140 rows x 14 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data=data.drop(index=data[data[\"country\"].str.contains(\",\")].index)\n",
"data=data.drop(index=data[data[\"country\"].str.contains(\" and \")].index)\n",
"data.reset_index()"
]
},
{
"cell_type": "markdown",
"id": "2f42c973-247a-4f51-947e-fbd76f8f12fc",
"metadata": {},
"source": [
"We removed 41 cheeses because they can come froms several countries. "
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "59c4e6e7-d624-45a5-a9ea-eb375102b771",
"metadata": {},
"outputs": [],
"source": [
"data[\"location\"]=data[\"region\"]+\", \"+data[\"country\"]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "0dee0f25-4699-4e46-97d0-21bb36d9c603",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>milk</th>\n",
" <th>country</th>\n",
" <th>region</th>\n",
" <th>family</th>\n",
" <th>type</th>\n",
" <th>texture</th>\n",
" <th>rind</th>\n",
" <th>color</th>\n",
" <th>flavor</th>\n",
" <th>aroma</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" <th>location</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aarewasser</td>\n",
" <td>cow</td>\n",
" <td>Switzerland</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-soft</td>\n",
" <td>buttery</td>\n",
" <td>washed</td>\n",
" <td>yellow</td>\n",
" <td>sweet</td>\n",
" <td>buttery</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, Switzerland</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Abbaye de Belloc</td>\n",
" <td>sheep</td>\n",
" <td>France</td>\n",
" <td>Pays Basque</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>creamy, dense, firm</td>\n",
" <td>natural</td>\n",
" <td>yellow</td>\n",
" <td>burnt caramel</td>\n",
" <td>lanoline</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Pays Basque, France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Abbaye de Belval</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-hard</td>\n",
" <td>elastic</td>\n",
" <td>washed</td>\n",
" <td>ivory</td>\n",
" <td>NaN</td>\n",
" <td>aromatic</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Abbaye de Citeaux</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Burgundy</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft, artisan, brined</td>\n",
" <td>creamy, dense, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>acidic, milky, smooth</td>\n",
" <td>barnyardy, earthy</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Burgundy, France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Abbaye de Tamié</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Savoie</td>\n",
" <td>NaN</td>\n",
" <td>soft, artisan</td>\n",
" <td>creamy, open, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>fruity, nutty</td>\n",
" <td>perfumed, pungent</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Savoie, France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1182</th>\n",
" <td>Sveciaost</td>\n",
" <td>cow</td>\n",
" <td>Sweden</td>\n",
" <td>Low-laying regions</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, brined</td>\n",
" <td>creamy, supple</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>acidic</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Low-laying regions, Sweden</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1183</th>\n",
" <td>Swag</td>\n",
" <td>goat</td>\n",
" <td>Australia</td>\n",
" <td>South Australia</td>\n",
" <td>NaN</td>\n",
" <td>fresh firm, artisan</td>\n",
" <td>creamy, crumbly</td>\n",
" <td>ash coated</td>\n",
" <td>white</td>\n",
" <td>acidic, creamy</td>\n",
" <td>fresh</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>South Australia, Australia</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1184</th>\n",
" <td>Swaledale</td>\n",
" <td>sheep</td>\n",
" <td>England</td>\n",
" <td>Swaledale, North Yorkshire</td>\n",
" <td>NaN</td>\n",
" <td>hard</td>\n",
" <td>semi firm</td>\n",
" <td>NaN</td>\n",
" <td>yellow</td>\n",
" <td>smooth, sweet</td>\n",
" <td>floral</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Swaledale, North Yorkshire, England</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1185</th>\n",
" <td>Sweet Style Swiss</td>\n",
" <td>NaN</td>\n",
" <td>Switzerland</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>firm, supple</td>\n",
" <td>waxed</td>\n",
" <td>NaN</td>\n",
" <td>nutty</td>\n",
" <td>nutty, sweet</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, Switzerland</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1186</th>\n",
" <td>Swiss cheese</td>\n",
" <td>cow</td>\n",
" <td>United States</td>\n",
" <td></td>\n",
" <td>Swiss Cheese</td>\n",
" <td>hard, artisan, processed</td>\n",
" <td>firm</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>nutty, sweet</td>\n",
" <td>NaN</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>, United States</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1140 rows × 14 columns</p>\n",
"</div>"
],
"text/plain": [
" cheese milk country region \\\n",
"0 Aarewasser cow Switzerland \n",
"1 Abbaye de Belloc sheep France Pays Basque \n",
"2 Abbaye de Belval cow France \n",
"3 Abbaye de Citeaux cow France Burgundy \n",
"4 Abbaye de Tamié cow France Savoie \n",
"... ... ... ... ... \n",
"1182 Sveciaost cow Sweden Low-laying regions \n",
"1183 Swag goat Australia South Australia \n",
"1184 Swaledale sheep England Swaledale, North Yorkshire \n",
"1185 Sweet Style Swiss NaN Switzerland \n",
"1186 Swiss cheese cow United States \n",
"\n",
" family type texture \\\n",
"0 NaN semi-soft buttery \n",
"1 NaN semi-hard, artisan creamy, dense, firm \n",
"2 NaN semi-hard elastic \n",
"3 NaN semi-soft, artisan, brined creamy, dense, smooth \n",
"4 NaN soft, artisan creamy, open, smooth \n",
"... ... ... ... \n",
"1182 NaN semi-hard, brined creamy, supple \n",
"1183 NaN fresh firm, artisan creamy, crumbly \n",
"1184 NaN hard semi firm \n",
"1185 NaN semi-hard, artisan firm, supple \n",
"1186 Swiss Cheese hard, artisan, processed firm \n",
"\n",
" rind color flavor aroma \\\n",
"0 washed yellow sweet buttery \n",
"1 natural yellow burnt caramel lanoline \n",
"2 washed ivory NaN aromatic \n",
"3 washed white acidic, milky, smooth barnyardy, earthy \n",
"4 washed white fruity, nutty perfumed, pungent \n",
"... ... ... ... ... \n",
"1182 rindless pale yellow acidic NaN \n",
"1183 ash coated white acidic, creamy fresh \n",
"1184 NaN yellow smooth, sweet floral \n",
"1185 waxed NaN nutty nutty, sweet \n",
"1186 rindless pale yellow nutty, sweet NaN \n",
"\n",
" vegetarian vegan location \n",
"0 False False , Switzerland \n",
"1 True False Pays Basque, France \n",
"2 False False , France \n",
"3 False False Burgundy, France \n",
"4 False False Savoie, France \n",
"... ... ... ... \n",
"1182 False False Low-laying regions, Sweden \n",
"1183 True False South Australia, Australia \n",
"1184 True False Swaledale, North Yorkshire, England \n",
"1185 False False , Switzerland \n",
"1186 True False , United States \n",
"\n",
"[1140 rows x 14 columns]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "e2e868d4-33a1-4602-af97-afb1d29e612f",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"locs=set(data[\"location\"])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "debb780e-ec13-4502-ac44-6001335e507d",
"metadata": {},
"outputs": [],
"source": [
"def str_to_gps(loc):\n",
" l=loc.split(\",\")\n",
" loc=\",\".join([l[0],l[-1]])# removing details gives less errors while fetching the GPS coordinates\n",
" try:\n",
" res=Nominatim(user_agent=\"dmProject\").geocode(loc) \n",
" return (res.latitude, res.longitude)\n",
" except AttributeError:\n",
" loc=l[-1]\n",
" res=Nominatim(user_agent=\"dmProject\").geocode(loc) \n",
" return (res.latitude, res.longitude)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "eed3ac7b-5283-4d8e-bc26-61e1d821ccaf",
"metadata": {},
"outputs": [],
"source": [
"if not os.path.isfile(\"locations_to_gps.json\"):\n",
" locations_to_gps={}\n",
" errors=set()\n",
" for loc in tqdm.tqdm(locs):\n",
" time.sleep(1)\n",
" try:\n",
" locations_to_gps[loc]=str_to_gps(loc)\n",
" print(loc, locations_to_gps[loc])\n",
" except AttributeError:\n",
" print(loc, \"ERROR\")\n",
" errors.add(loc)\n",
" with open(\"locations_to_gps.json\", \"w\") as f:\n",
" json.dump(locations_to_gps, f)\n",
"else: \n",
" with open(\"locations_to_gps.json\") as f:\n",
" locations_to_gps=json.load(f)\n",
" errors=set()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "a6966ac7-7a69-4829-8588-d10f85ea98a4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'Galax, Virginia, United States': [36.6612387, -80.9239671], 'Northeastern Brazil, Brazil': [-10.3333333, -53.2], 'Tieton, Washington, United States': [46.7020686, -120.75535], 'Central Balkan Mountains, Bulgaria': [42.6073975, 25.4856617], 'Postel, Belgium': [51.2874865, 5.1897863], ', Netherlands': [52.2434979, 5.6343227], 'Äänekoski, Finland': [62.6032186, 25.7301361], 'New Hampshire, United States': [43.4849133, -71.6553992], 'Friuli Venezia Giulia and Veneto, Italy': [42.6384261, 12.674297], 'County Cavan, Ireland': [54.03497495, -7.2937022825583675], 'Charentes-Poitou, France': [45.4039367, 0.3756199], 'Veneto, ': [45.6476663, 11.8665254], 'Lazio, Sardinia, Italy': [41.9808038, 12.7662312], 'Fairview, United States': [40.6333724, -90.1637318], 'County Wexford, Ireland': [52.46018745, -6.606515459159162], 'Southwestern Wisconsin, United States': [42.53116075, -90.43762550236468], 'Co. Carlow, Ireland': [52.69078865, -6.825145150844913], 'West Pawlet, VT, United States': [43.356893, -73.24966776033015], 'Passendale, Belgium': [50.9003015, 3.0203891], 'Serra da Estrela, Portugal': [40.4358994, -7.516865473467464], 'Centre-Val de Loire, France': [47.5490251, 1.7324062], \"Lucerne, Schwyz, Unterwald, and Zoug, and the following additional places: Muri district in d'Argovi, Switzerland\": [47.0505452, 8.3054682], 'Bjurholm, Sweden': [63.966667, 19.0], 'Po valley region, Italy': [42.6384261, 12.674297], 'Wales, Great Britain': [53.28236125, -3.8286207326666837], ', Denmark': [55.670249, 10.3333283], 'Asiago, Italy': [45.8753771, 11.5106998], 'Flanders, Belgium': [51.096246199999996, 4.178629103169916], 'Languedoc, France': [43.65420305, 3.674669940206605], 'Brickhill, Co. Clare, Ireland': [52.70642975, -8.751786760846851], 'Ontario, Canada': [50.000678, -86.000977], ', Armenia': [4.491976149999999, -75.74135085294314], 'Mornington Peninsula, Melbourne, Australia': [-38.3312575, 145.08106868543985], 'Bergues, France': [50.9683886, 2.4325247], 'Pesaro-Urbino, Italy': [43.694112700000005, 12.701443660480004], 'Cheshire, England': [53.2141028, -2.471770086071205], 'Indiana, United States': [40.3270127, -86.1746933], 'Rhone-Alps, France': [45.2968119, 4.6604809], 'Stranraer, Scotland': [54.9044332, -5.026204], 'Seattle, Washington, United States': [47.6038321, -122.330062], 'St. Gallen (canton), Tufertschwil, Switzerland': [47.1561047, 9.338323], 'South East England, United Kingdom': [51.45115235, -0.9935673736185868], 'Lombardy, Italy': [45.5703694, 9.7732524], 'Utah, United States': [39.4225192, -111.714358], 'Illinois, United States': [40.0796606, -89.4337288], ', Wales': [52.2928116, -3.73893], 'Low-laying regions, Sweden': [59.6749712, 14.5208584], 'Avesnes, France': [50.5495906, 1.9721295], ', Middle East': [39.3014159, -76.5888477], 'Midi-Pyrenees, France': [43.8099068, 1.4344926056549236], 'Southern California, United States': [34.169262950000004, -116.787448181486], 'Piedmont, Italy': [45.060735, 7.923549], 'California, United States': [36.7014631, -118.755997], 'Gloucestershire, England': [51.7643786, -2.1880661838719386], 'North Wootton, England': [52.7923213, 0.4278194], 'Severn Valley, England': [52.454530899999995, -2.3755702502240226], 'Extremadura, Spain': [39.1748426, -6.1529891], 'Cumbrian, United Kingdom': [54.478530449999994, -3.06553306667584], 'Lebanon, CT, United States': [40.375713, -76.4626118], 'Lodi, Italy': [45.2613104, 9.491678060021837], 'Websterville, VT, United States': [44.162985, -72.47576806895253], 'Swabia, Germany': [48.15313125, 10.47129100603846], 'Stewarton, Scotland': [55.680265, -4.5153023], 'Oxfordshire, Great Britain': [51.7412674, -1.2245951], 'Ballarat, Victoria, Australia': [-37.5623013, 143.8605645], 'old Liburnia (Dalmatia), Croatia': [45.3658443, 15.6575209], 'Orkney Isles, Scotland': [56.7861112, -4.1140518], 'Puimichel in Provence Alpes, France': [46.603354, 1.8883335], ', Israel': [30.8124247, 34.8594762], 'Port Townsend, United States': [48.1179702, -122.769544], ', Iraq': [33.0955793, 44.1749775], ', Greece': [38.9953683, 21.9877132], 'Greensboro, VT, United States': [36.0726355, -79.7919754], 'Cornwall, England': [50.443348900000004, -4.62465658489158], 'South West England, England': [51.50076785, -2.5503106339491204], 'Pembrokeshire, United Kingdom': [51.8339209, -4.916667], 'Northern Holland, Netherlands': [52.2434979, 5.6343227], 'Prince Edward Island, Canada': [46.3355508, -63.1466676], 'Central and Western Macedonia, Thessalia, Greece': [38.9953683, 21.9877132], 'Richfield, Wisconsin, United States': [44.8766431, -93.2877877], 'Burgundy, France': [47.27808725, 4.222486304306048], 'Pokolbin, Hunter Valley, Australia': [-32.7792106, 151.2978747], 'Cotswolds, England': [51.7489422, -0.2303579], 'Beara Peninsula, Co. Cork, Ireland': [51.7280451, -9.767906428362338], 'County Tipperary, Clogheen, Ireland': [52.68482145, -7.898147186112796], 'Ceredigion, United Kingdom': [52.2945764, -3.9527809990291427], 'Dorset, England': [50.79683685, -2.34473226124306], 'Maine, United States': [45.709097, -68.8590201], ', Switzerland': [46.7985624, 8.2319736], 'Bethania, United Kingdom': [52.2509586, -4.0888576], 'Laruns, France': [42.9882368, -0.4266324], ', Sweden': [59.6749712, 14.5208584], 'St. Louis, Missouri, United States': [38.6280278, -90.1910154], 'Moliterno, Italy': [40.2423024, 15.868903], 'Minas Gerais, Brazil': [-18.5264844, -44.1588654], 'Troyes , Aube, France': [48.2971626, 4.0746257], 'Veneto, Trentino, Italy': [45.6476663, 11.8665254], 'Lincolnshire, England': [53.1823034, -0.2031208542548153], 'Co. Offaly, Ireland': [53.13617215, -7.810340751784169], 'Quebec, Canada': [52.4760892, -71.8258668], 'Allgau, Germany': [47.8241593, 11.6822424], ', Hungary': [47.1817585, 19.5060937], 'Marathon, NY, United States': [44.8914036, -89.7748098], 'Timsbury, Somerset, Scotland': [56.7861112, -4.1140518], 'Petaluma, California, United States': [38.2325829, -122.636465], 'Landford, England': [50.9700788, -1.6363792], 'Piora Valley, Switzerland': [46.7985624, 8.2319736], 'Burgund, France': [47.27808725, 4.222486304306048], 'Wigtownshire, Scotland': [54.9042579, -5.0248893], 'Macedonia, Thrace, Thessalia, Peloponissos, Ionian Islands, Aegean islands, Crete Island and Epirus, Greece': [40.6186482, 22.91795361795959], ', Australia': [-24.7761086, 134.755], 'Staffordshire, England': [52.824694199999996, -2.0074546723348115], 'Haute Vienne, France': [45.91901925, 1.203176771876291], 'Alba, Italy': [44.7007236, 8.0357786], 'Campania, Italy': [40.860672, 14.843984], 'Taxco, Mexico': [18.5565446, -99.6052838], 'New York, United States': [40.7127281, -74.0060152], 'Svaneti, Samegrelo, Georgia': [42.63545205, 42.24871384619953], 'East Midlands, England': [53.1188177, -1.2597068974971675], 'Fornells de la Selva, Gironès, Spain': [41.9319675, 2.8090343], 'North Cornwall, England': [51.7561518, 0.4645198], 'Colorado, United States': [38.7251776, -105.607716], 'Nicasio, United States': [38.0615885, -122.6985975], ', Brazil': [-10.3333333, -53.2], 'Pyrenees, France': [48.8738565, 2.3852638], 'Derbyshire, Leicestershire, Nottinghamshire, England': [53.1185033, -1.5566179305872214], 'Québec, Canada': [52.4760892, -71.8258668], 'Manitoba, Canada': [55.001251, -97.001038], 'Auvergne, Salers, France': [45.2968119, 4.6604809], 'Upper Corsica, France': [46.603354, 1.8883335], 'Setubal, Palmela and Sesimbra, Portugal': [38.5241783, -8.8932341], 'Roncq, France': [50.7531232, 3.1209016], 'Oregon Coast Range, United States': [39.7837304, -100.445882], ', Mexico': [23.6585116, -102.0077097], 'Roxburghshire, Scotland': [56.7861112, -4.1140518], 'Tipperary, Ireland': [52.4734839, -8.1614446], 'Wisconsin, United States': [44.4308975, -89.6884637], 'Mankato, MN, United States': [44.1634663, -93.9993505], 'Devon, England': [50.724140500000004, -3.6607788161410735], 'Kimball, United States': [41.1881305, -103.6997645], 'Brooklyn NY, United States': [40.6526006, -73.9497211], 'Northern Wisconsin, United States': [44.94725995, -91.39373410986752], 'All Holland, Netherlands': [52.4601118, 4.6056526], 'Tuscany, Italy': [43.4586541, 11.1389204], 'Avila, Spain': [40.656478, -4.7002172], 'Belvederis, Lithuania': [55.0820118, 23.3897023], 'Naples, Italy': [40.8358846, 14.2487679], 'Galicia, Spain': [42.61946, -7.863112], 'Castelo Branco, Fundão and Idanha-a-Nova, Portugal': [39.97675825, -7.446059929966704], 'Pullman, Washington, United States': [46.7304268, -117.173895], 'Aveyron, France': [44.315857449999996, 2.5065697302419823], 'Ann Arbor, Michigan, United States': [42.2813722, -83.7484616], 'Oregon, United States': [43.9792797, -120.737257], ', Austria': [47.59397, 14.12456], 'Bregenzerwald, Kleinwalsertal, Großwalsertal, Laiblachtal (Pfänderstock) and Rheintal, Austria': [47.387028799999996, 9.95606355528393], 'Airedale farming district, New Zealand': [-41.5000831, 172.8344077], 'Cevenes, France': [44.3509309, 3.8584812791602983], 'massif des Causses, France': [46.603354, 1.8883335], 'Stawley, near Wellington, Somerset, England': [50.9961449, -3.3382702], 'Canary Islands, Spain': [28.286398900000002, -16.796011808910734], 'Timsbury, Somerset, England': [51.3271927, -2.4755923], 'Anjou, France': [45.3462, 4.88149], 'Co Limerick, Ireland': [52.518831649999996, -8.795834650292788], 'Coquet, England': [54.88091196980861, -1.5495607774216265], 'Modena, Italy': [44.5384728, 10.935960870530739], 'Herefordshire, West Midlands, United Kingdom': [52.083333, -2.75], 'Dalmatia, Croatia': [43.538796500000004, 16.175235566874342], 'Gloucestershire County, England': [51.9425914, -2.100154122305389], 'Prince Edward County, Ontario, Canada': [44.031827, -77.246933], 'Karlovy Vary, Czech Republic': [50.2306216, 12.8701437], ', Canada': [61.0666922, -107.991707], ', Afghanistan': [33.7680065, 66.2385139], ', Portugal': [39.6621648, -8.1353519], 'Chirac, France': [45.9140138, 0.6548543], 'Allgäu, Germany': [47.5926009, 10.209156], 'Ile de France, France': [48.6443057, 2.7537863], 'French Basque Country, Midi-Pyrénées, France': [46.603354, 1.8883335], 'St Antoine, France': [44.0361186, 0.8397552], ', Spain': [39.3260685, -4.8379791], 'Charentes, France': [45.4039367, 0.3756199], 'Béarnaise in Pyrénées-Atlantique, France': [46.603354, 1.8883335], 'Emilia-Romagna, Italy': [44.525696, 11.039437], 'Kinfauns, Perthshire, Scotland': [56.3822607, -3.36565], 'Bas-Languedoc, Comtat Venaissin, France': [43.687621, 4.2691037], 'Piave Valley, Italy, Italy': [45.735099578237005, 7.320173335891282], 'North East Victoria, Australia': [-37.8633951, 145.0100994], 'Brittany, France': [48.2640845, -2.9202408], 'Fethard, Co Tipperary, Ireland': [52.467222, -7.691111], 'Castilla Leon, Spain': [40.4598868, -3.4720773], 'Carneros, Sonoma, California, United States': [33.223027, -111.70568456233669], 'Loire Valley, France': [47.44927715, -0.34954901296919916], 'Bermondsey, London, England': [51.4970125, -0.063268], 'Bursa, Turkey': [39.9895878, 28.8944669], 'Centre , the department of Loiret, France': [47.5490251, 1.7324062], ', Argentina': [-34.9964963, -64.9672817], 'Pays Basque, France': [47.6867895, 7.3927627], 'Vermont, United States': [44.5990718, -72.5002608], 'Carmarthenshire, Wales': [51.893669849999995, -4.217282721429928], 'Island of Pag, Croatia': [45.3658443, 15.6575209], 'Sebastopol, California, United States': [38.4021038, -122.824222], 'Friuli-Venezia Giulia, Italy': [46.151042, 13.055904], ', Turkey': [39.294076, 35.2316631], 'Schoonrewoerd, Leerdam, Netherlands': [51.920458, 5.1156505], 'Asturias, Spain': [43.3133868, -5.94192], 'Ile-de-France/Champagne, France': [48.5499833, 7.7510775], 'island wide, Cyprus': [34.9174159, 32.889902651331866], 'Rhône-Alpes, France': [45.3175313, 5.721294352585611], 'Aberdeenshire, Scotland': [57.166667, -2.666667], 'Co. Cork, Ireland': [51.917535900000004, -8.58597726870895], 'Oristano, Italy': [40.02656765, 8.679641647435716], 'Zasavica, Serbia': [44.9454307, 19.4987239], 'North Yorkshire, England': [54.13453275, -1.498628491239545], ', Italy': [42.6384261, 12.674297], 'Orkney Islands, Scotland': [58.94182309999999, -3.129694439563327], 'Croisy-sur-Eure, France': [49.0291802, 1.346505], 'Swaledale, North Yorkshire, England': [54.38299324007608, -1.9841360652878535], 'Canton of Glarus, Switzerland': [46.7985624, 8.2319736], 'Pyrenees-Atlantiques, France': [43.18718655, -0.728247400084667], 'Pyrénées, France': [48.8738565, 2.3852638], 'Valencia, Spain': [39.4697065, -0.3763353], 'East Sussex, United Kingdom': [50.9404266, 0.3699977891068864], ', Serbia': [44.024322850000004, 21.07657433209902], 'Oviken, Sweden': [62.9974877, 14.3928671], 'Aquitaine, France': [44.24620635, -0.18399787392367906], 'Dumfriesshire, Scotland': [55.166667, -3.5], 'Huizen, Netherlands': [52.2958122, 5.2567209], 'Leiden, Netherlands': [52.1594747, 4.4908843], 'Gevrey-Chambertin, Burgundy, France': [47.2261857, 4.9705666], 'Azores, Portugal': [37.80855645, -25.473137391245295], 'Dumfries, Scotland': [55.0691397, -3.6107936], 'Rhone Valley, France': [46.603354, 1.8883335], 'Blarney, Ireland': [51.9325233, -8.5678665], 'British Columbia, Canada': [55.001251, -125.002441], 'Castile-Leon, Spain': [41.55005, -5.1387401], 'Illoud (Haute-Marne), France': [48.2089823, 5.5615126], 'Pienza, Italy': [43.0765485, 11.6789076], 'Averyon, France': [46.603354, 1.8883335], 'Banks Peninsular in Canterbury, New Zealand': [-41.5000831, 172.8344077], 'Pyrénées-Atlantiques, France': [43.18718655, -0.728247400084667], 'Hamilton, New Zealand': [-37.7878809, 175.281788], 'New South Wales, Australia': [-31.8759835, 147.2869493], 'Savoie, France': [45.494895150000005, 6.384660381375652], 'Tomales, California, United States': [38.2468075, -122.90630461024097], 'Wallonia, Belgium': [50.154540049999994, 5.399359762971196], 'Aveyron, Laguiole, France': [44.315857449999996, 2.5065697302419823], ', United States': [39.7837304, -100.445882], 'Banon, France': [44.0381752, 5.6296701], 'Emilia Romagna, Italy': [44.525696, 11.039437], 'Wales, London, Wales': [52.41446365, -4.0685073132923], 'New York, France': [44.8705067, -0.5504343], 'Veneto, Italy': [45.6476663, 11.8665254], 'Pays dAuge, Normandy, France': [49.0356178, 0.1573083324015645], 'Gâtinais, France': [48.15497515, 2.811419156673292], 'Co Clare, Ireland': [52.857257450000006, -8.937435925994537], 'Gravina in Puglia, Murgia, Italy': [40.819725, 16.422779], 'Gippsland, Victoria, Australia': [-37.87448275, 146.9111788341666], 'Monterey, California, United States': [36.2231079, -121.387742], ', Germany': [51.1638175, 10.4478313], ', Mongolia': [46.8250388, 103.8499736], 'Serra da Canastra, Minas Gerais state, Brazil': [-20.1615, -46.76365461658604], 'Pinconning, Michigan, United States': [43.853633, -83.964987], 'Co. Mayo, Ireland': [53.9087056, -9.298304863654256], 'Västra Götaland, Sweden': [58.215850200000006, 12.651820794914073], 'Somerset, England': [51.161750850000004, -3.0753867062227487], 'Carrigtwohill, ': [51.9094617, -8.2611809], 'Calabria, Italy': [39.0565974, 16.5249864], 'Bavaria, Germany': [48.9467562, 11.4038717], ', United Kingdom': [54.7023545, -3.2765753], ', Poland': [52.215933, 19.134422], 'Sulzberg, Austria': [47.52121792021591, 9.91273065974192], ', Mauritania': [20.2540382, -9.2399263], 'Piemonte, Italy': [45.060735, 7.923549], 'Franche Comté, France': [48.68347355, 2.1776625116070027], 'Beira Baixa Province, Portugal': [39.6621648, -8.1353519], 'Valpadana, Italy': [39.60288591417616, 16.626802703803317], 'Carrigtwohill, Ireland': [51.9094617, -8.2611809], 'Maribo, Denmark': [54.7758018, 11.5054333], 'South West England, United Kingdom': [51.0339991, -2.949011916021195], 'Basque, Pyrenees Mountains, France': [45.359277750000004, -1.1480053453043046], 'Crotone, Italy': [39.1873894, 16.87828188895307], 'Provence, France': [44.0580563, 6.0638506], 'province of Brittany, France': [46.603354, 1.8883335], 'Campania, Paestum, Foggia, Italy': [40.860672, 14.843984], 'Shelburne Farms, United States': [34.89046225, -82.24340593189123], 'Treviso, Veneto, Italy': [45.806691349999994, 12.206315763116372], 'Missouri, United States': [38.7604815, -92.5617875], 'Georgia, United States': [32.3293809, -83.1137366], 'North East Victoria, ': [54.699881, -1.6031519], 'Tasmania, Australia': [-42.035067, 146.6366887], 'Amou, Gascony, France': [43.59266, -0.7475291], 'Normandy, France': [49.0677708, 0.3138532], 'County Carlow, Ireland': [52.69078865, -6.825145150844913], 'Berry, France': [44.5760186, 0.3095833], 'Inagh, Co Clare, Ireland': [52.9071704, -9.2345138], 'Mols, Denmark': [56.187042, 10.460782482125193], 'Odell, Bedfordshire, England': [52.21843025, -0.5921260787763352], 'Pembrokeshire, Wales': [51.8339209, -4.916667], 'Comox Valley, Vancouver Island, Canada': [49.670981, -125.0353253], 'Provencale, France': [43.7899311033635, 7.524017533510311], 'Milford, NJ, United States': [41.2222218, -73.0570603], 'Carnia, Italy': [46.3738716, 13.1339829], 'Northwest, United States': [34.3129464, -78.1611077], 'Auvergne, France': [45.2968119, 4.6604809], 'Friuli-Venezia Giulia and the Veneto, Italy': [42.6384261, 12.674297], ', New Zealand': [-41.5000831, 172.8344077], 'Adamstown, Co Wexford, Ireland': [53.3360017, -6.4692321], 'Castille-Leon, Spain': [41.55005, -5.1387401], 'Murazzano, Italy': [44.4746494, 8.0213361], 'Massachusetts, United States': [42.3788774, -72.032366], 'Haute-Savoie / Upper Savoy, France': [46.06904065, 6.344532137164], ', Belgium': [50.6402809, 4.6667145], 'Kent, United Kingdom': [51.20707485, 0.7210361813401444], 'Landshut, Germany': [48.536217, 12.1516551], 'Brisbane, Australia': [-27.4689682, 153.0234991], 'Allgaeu Alps, Germany': [51.1638175, 10.4478313], 'Aconcagua, Chile': [-33.030515957094444, -71.5177984276482], 'Rio Grande do Sul, Brazil': [-29.8425284, -53.7680577], 'Menorca, Balearic Islands, Spain': [39.949257200000005, 4.0499641751186415], 'Isere, France': [45.28979315, 5.634382477386232], 'Stoneyford, Ireland': [52.5362671, -7.2278963], 'Loire, France': [45.75385355, 4.045473682551104], 'Cotherstone, England': [54.570244, -1.9804176], ', England': [52.5310214, -1.2649062], 'Jura, Switzerland': [47.3566699, 7.1598893], 'Charm, Ohio, United States': [40.5067308, -81.7848553], 'Chelmarsh, Bridgnorth, Shropshire, England': [52.4875359, -2.4124407], 'West Bengal, India': [22.9964948, 87.6855882], 'County Antrim, Ireland': [54.864725500000006, -6.143637910742768], ', France': [46.603354, 1.8883335], 'Pennsylvania, United States': [40.9699889, -77.7278831], 'Stonegate, East Sussex, England': [53.960910892985034, -1.0833748506182423], 'Gujarat, India': [22.3850051, 71.745261], ', Cyprus': [34.9174159, 32.889902651331866], 'Vorarlberg, Austria': [47.25, 9.9166667], 'Poitou-Charentes, France': [46.13244785, -0.15455354898441043], 'Larzac, France': [44.74693, 1.0075], 'Sonoma, California, United States': [38.5110803, -122.8473388], 'Midi-Pyrénées, France': [43.8099068, 1.4344926056549236], 'Corsica, France': [42.188089649999995, 9.068413771427695], 'Coast of Oregon, United States': [39.7837304, -100.445882], 'Kilmallock County Limerick, Ireland': [52.400645600000004, -8.571161660434711], 'Greenville, Indiana, United States': [34.851354, -82.3984882], 'Romanian Carpathians, Romania': [46.4046483, 22.9894841933513], 'Basilicata, Italy': [40.500571, 16.081953], 'Lower Normandy, France': [48.953684499999994, -0.573365358805311], 'Lapland, Finland': [67.69291045, 26.728214183162986], 'Normandy, Auvilliers, France': [49.0677708, 0.3138532], 'Languedoc-Roussillon, France': [43.65420305, 3.674669940206605], 'Allagau, Bavarian Alps, Germany': [51.1638175, 10.4478313], 'Buxton, Derbyshire, England': [53.2593422, -1.9100768], 'Bornholm, Denmark': [55.143122399999996, 14.922629658767558], 'Bloomdale, United States': [33.2473378, -96.6794382], 'Cornwall, ': [50.416667, -4.75], 'Barcelona, Spain': [41.3828939, 2.1774322], 'Hunter Valley, Australia': [-32.5421803, 151.2185641], 'North Carolina, United States': [35.6729639, -79.0392919], 'Laqueuille, France': [45.6507627, 2.7320917], 'Minnesota, United States': [45.9896587, -94.6113288], 'Sardinia & Campania, Italy': [42.6384261, 12.674297], 'South Australia, Australia': [-30.5343665, 135.6301212], 'Central and Western Macedonia, Thessaly, Greece': [38.9953683, 21.9877132], ', Ireland': [52.865196, -7.9794599], 'NY, United States': [43.1561681, -75.8449946], 'Bourgogne, France': [47.27808725, 4.222486304306048], 'Virginia, United States': [37.1232245, -78.4927721], 'Póvoa de Lanhoso, Portugal': [41.5759516, -8.2699521], 'Colby, Wisconsin, United States': [44.5684775, -69.66002565150262], 'Lanarkshire, Scotland': [55.5752966, -3.833333], 'Herault, France': [43.591422, 3.3553309364095925], ', Scotland': [56.7861112, -4.1140518], 'Murcia, Spain': [37.9923795, -1.1305431], 'La Velle, Wisconsin, United States': [45.1699553, -109.88428658948227], 'Ann Arbor, MI, United States': [42.2813722, -83.7484616], 'New Jersey, United States': [40.0757384, -74.4041622], 'Duhallow, Ireland': [52.1837912, -9.00609563330653], ', Iceland': [64.9841821, -18.1059013], 'Iowa, United States': [41.9216734, -93.3122705], 'Queenstown, New Zealand': [-45.0321923, 168.661], 'Tain, Scotland': [57.8119372, -4.0550663], 'Sardegna, Italy': [40.0912813, 9.0305773], 'Nottinghamshire, England': [53.1459288, -1.0214971168122484], 'Peekskill, United States': [41.289811, -73.9204922], 'Fife, Scotland': [56.3333331, -3.0000001], 'Umbria, Lazio, Italy': [42.965916, 12.490236], 'Nord-Pas-de-Calais, France': [50.5289634, 2.454515765955904], 'Victoria, Australia': [-36.5986096, 144.6780052], 'Het Groene Hart, Netherlands': [51.5246, 4.280818038775446], 'Inagh, Co Clare, ': [52.9071704, -9.2345138], ', Holland': [52.2434979, 5.6343227]}\n"
]
}
],
"source": [
"print(locations_to_gps)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "204d1446-e58f-4585-8ac0-7466930e4291",
"metadata": {},
"outputs": [],
"source": [
"latitudes, longitudes=[],[]\n",
"for i,value in enumerate(data.location):\n",
" latitudes.append(locations_to_gps[value][0])\n",
" longitudes.append(locations_to_gps[value][1])\n",
"data[\"latitude\"]=latitudes\n",
"data[\"longitude\"]=longitudes"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "0e10c205-7492-489d-8404-da10c8a6a487",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>milk</th>\n",
" <th>country</th>\n",
" <th>region</th>\n",
" <th>family</th>\n",
" <th>type</th>\n",
" <th>texture</th>\n",
" <th>rind</th>\n",
" <th>color</th>\n",
" <th>flavor</th>\n",
" <th>aroma</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" <th>location</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aarewasser</td>\n",
" <td>cow</td>\n",
" <td>Switzerland</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-soft</td>\n",
" <td>buttery</td>\n",
" <td>washed</td>\n",
" <td>yellow</td>\n",
" <td>sweet</td>\n",
" <td>buttery</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, Switzerland</td>\n",
" <td>46.798562</td>\n",
" <td>8.231974</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Abbaye de Belloc</td>\n",
" <td>sheep</td>\n",
" <td>France</td>\n",
" <td>Pays Basque</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>creamy, dense, firm</td>\n",
" <td>natural</td>\n",
" <td>yellow</td>\n",
" <td>burnt caramel</td>\n",
" <td>lanoline</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Pays Basque, France</td>\n",
" <td>47.686790</td>\n",
" <td>7.392763</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Abbaye de Belval</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-hard</td>\n",
" <td>elastic</td>\n",
" <td>washed</td>\n",
" <td>ivory</td>\n",
" <td>NaN</td>\n",
" <td>aromatic</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, France</td>\n",
" <td>46.603354</td>\n",
" <td>1.888334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Abbaye de Citeaux</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Burgundy</td>\n",
" <td>NaN</td>\n",
" <td>semi-soft, artisan, brined</td>\n",
" <td>creamy, dense, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>acidic, milky, smooth</td>\n",
" <td>barnyardy, earthy</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Burgundy, France</td>\n",
" <td>47.278087</td>\n",
" <td>4.222486</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Abbaye de Tamié</td>\n",
" <td>cow</td>\n",
" <td>France</td>\n",
" <td>Savoie</td>\n",
" <td>NaN</td>\n",
" <td>soft, artisan</td>\n",
" <td>creamy, open, smooth</td>\n",
" <td>washed</td>\n",
" <td>white</td>\n",
" <td>fruity, nutty</td>\n",
" <td>perfumed, pungent</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Savoie, France</td>\n",
" <td>45.494895</td>\n",
" <td>6.384660</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1182</th>\n",
" <td>Sveciaost</td>\n",
" <td>cow</td>\n",
" <td>Sweden</td>\n",
" <td>Low-laying regions</td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, brined</td>\n",
" <td>creamy, supple</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>acidic</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Low-laying regions, Sweden</td>\n",
" <td>59.674971</td>\n",
" <td>14.520858</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1183</th>\n",
" <td>Swag</td>\n",
" <td>goat</td>\n",
" <td>Australia</td>\n",
" <td>South Australia</td>\n",
" <td>NaN</td>\n",
" <td>fresh firm, artisan</td>\n",
" <td>creamy, crumbly</td>\n",
" <td>ash coated</td>\n",
" <td>white</td>\n",
" <td>acidic, creamy</td>\n",
" <td>fresh</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>South Australia, Australia</td>\n",
" <td>-30.534367</td>\n",
" <td>135.630121</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1184</th>\n",
" <td>Swaledale</td>\n",
" <td>sheep</td>\n",
" <td>England</td>\n",
" <td>Swaledale, North Yorkshire</td>\n",
" <td>NaN</td>\n",
" <td>hard</td>\n",
" <td>semi firm</td>\n",
" <td>NaN</td>\n",
" <td>yellow</td>\n",
" <td>smooth, sweet</td>\n",
" <td>floral</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Swaledale, North Yorkshire, England</td>\n",
" <td>54.382993</td>\n",
" <td>-1.984136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1185</th>\n",
" <td>Sweet Style Swiss</td>\n",
" <td>NaN</td>\n",
" <td>Switzerland</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>semi-hard, artisan</td>\n",
" <td>firm, supple</td>\n",
" <td>waxed</td>\n",
" <td>NaN</td>\n",
" <td>nutty</td>\n",
" <td>nutty, sweet</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, Switzerland</td>\n",
" <td>46.798562</td>\n",
" <td>8.231974</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1186</th>\n",
" <td>Swiss cheese</td>\n",
" <td>cow</td>\n",
" <td>United States</td>\n",
" <td></td>\n",
" <td>Swiss Cheese</td>\n",
" <td>hard, artisan, processed</td>\n",
" <td>firm</td>\n",
" <td>rindless</td>\n",
" <td>pale yellow</td>\n",
" <td>nutty, sweet</td>\n",
" <td>NaN</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>, United States</td>\n",
" <td>39.783730</td>\n",
" <td>-100.445882</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1140 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" cheese milk country region \\\n",
"0 Aarewasser cow Switzerland \n",
"1 Abbaye de Belloc sheep France Pays Basque \n",
"2 Abbaye de Belval cow France \n",
"3 Abbaye de Citeaux cow France Burgundy \n",
"4 Abbaye de Tamié cow France Savoie \n",
"... ... ... ... ... \n",
"1182 Sveciaost cow Sweden Low-laying regions \n",
"1183 Swag goat Australia South Australia \n",
"1184 Swaledale sheep England Swaledale, North Yorkshire \n",
"1185 Sweet Style Swiss NaN Switzerland \n",
"1186 Swiss cheese cow United States \n",
"\n",
" family type texture \\\n",
"0 NaN semi-soft buttery \n",
"1 NaN semi-hard, artisan creamy, dense, firm \n",
"2 NaN semi-hard elastic \n",
"3 NaN semi-soft, artisan, brined creamy, dense, smooth \n",
"4 NaN soft, artisan creamy, open, smooth \n",
"... ... ... ... \n",
"1182 NaN semi-hard, brined creamy, supple \n",
"1183 NaN fresh firm, artisan creamy, crumbly \n",
"1184 NaN hard semi firm \n",
"1185 NaN semi-hard, artisan firm, supple \n",
"1186 Swiss Cheese hard, artisan, processed firm \n",
"\n",
" rind color flavor aroma \\\n",
"0 washed yellow sweet buttery \n",
"1 natural yellow burnt caramel lanoline \n",
"2 washed ivory NaN aromatic \n",
"3 washed white acidic, milky, smooth barnyardy, earthy \n",
"4 washed white fruity, nutty perfumed, pungent \n",
"... ... ... ... ... \n",
"1182 rindless pale yellow acidic NaN \n",
"1183 ash coated white acidic, creamy fresh \n",
"1184 NaN yellow smooth, sweet floral \n",
"1185 waxed NaN nutty nutty, sweet \n",
"1186 rindless pale yellow nutty, sweet NaN \n",
"\n",
" vegetarian vegan location latitude \\\n",
"0 False False , Switzerland 46.798562 \n",
"1 True False Pays Basque, France 47.686790 \n",
"2 False False , France 46.603354 \n",
"3 False False Burgundy, France 47.278087 \n",
"4 False False Savoie, France 45.494895 \n",
"... ... ... ... ... \n",
"1182 False False Low-laying regions, Sweden 59.674971 \n",
"1183 True False South Australia, Australia -30.534367 \n",
"1184 True False Swaledale, North Yorkshire, England 54.382993 \n",
"1185 False False , Switzerland 46.798562 \n",
"1186 True False , United States 39.783730 \n",
"\n",
" longitude \n",
"0 8.231974 \n",
"1 7.392763 \n",
"2 1.888334 \n",
"3 4.222486 \n",
"4 6.384660 \n",
"... ... \n",
"1182 14.520858 \n",
"1183 135.630121 \n",
"1184 -1.984136 \n",
"1185 8.231974 \n",
"1186 -100.445882 \n",
"\n",
"[1140 rows x 16 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "d41b1dc8-90df-44b8-9d83-d218f82a3637",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x=data[\"longitude\"]\n",
"y=data[\"latitude\"]\n",
"plt.plot(x,y,\".\");"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "66ce4e4a-7006-411f-abd0-ee94d7cf99b3",
"metadata": {},
"outputs": [],
"source": [
"def filter_df(df, cols=None):\n",
" if cols is None:\n",
" cols = [\"milk\", \"country\", \"type\", \"texture\", \"flavor\", \"aroma\", \"family\", \"rind\"]\n",
"\n",
" df = df.copy()\n",
" attributes = set() # Get all the possible attributes (some are mixed in different columns)\n",
" for col in cols:\n",
" values = set()\n",
" for val in set(df[col]):\n",
" if type(val) == float: # skip NaN values\n",
" continue\n",
" values = values.union([x.strip() for x in set(val.split(\",\"))])\n",
" attributes = attributes.union(values)\n",
" row_attrs = [set() for _ in range(len(df))] # get the attributes specific to each row\n",
" for col in cols:\n",
" for i, row in enumerate(df[col]):\n",
" if type(row) != float:\n",
" row_attrs[i] = row_attrs[i].union([x.strip() for x in row.split(\",\")])\n",
" for attr in attributes: # Add attributes rows\n",
" df[attr] = list(attr in row_attrs[i] for i in range(len(df[col])))\n",
" df=df.copy()\n",
" for col in cols:\n",
" del df[col]\n",
"\n",
" return df.copy()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "fda6aaad-7b1e-4daa-8d28-cd049df9cec2",
"metadata": {},
"outputs": [],
"source": [
"data_features=filter_df(data)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "99d028a8-326d-4fbd-ba01-19a8ab4b4557",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>region</th>\n",
" <th>color</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" <th>location</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" <th></th>\n",
" <th>Lithuania</th>\n",
" <th>...</th>\n",
" <th>Italian Cheese</th>\n",
" <th>Scotland</th>\n",
" <th>Mexico</th>\n",
" <th>burnt caramel</th>\n",
" <th>lactic</th>\n",
" <th>Raclette</th>\n",
" <th>rindless</th>\n",
" <th>water buffalo</th>\n",
" <th>Mauritania</th>\n",
" <th>Belgium</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aarewasser</td>\n",
" <td></td>\n",
" <td>yellow</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, Switzerland</td>\n",
" <td>46.798562</td>\n",
" <td>8.231974</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Abbaye de Belloc</td>\n",
" <td>Pays Basque</td>\n",
" <td>yellow</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Pays Basque, France</td>\n",
" <td>47.686790</td>\n",
" <td>7.392763</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Abbaye de Belval</td>\n",
" <td></td>\n",
" <td>ivory</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, France</td>\n",
" <td>46.603354</td>\n",
" <td>1.888334</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Abbaye de Citeaux</td>\n",
" <td>Burgundy</td>\n",
" <td>white</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Burgundy, France</td>\n",
" <td>47.278087</td>\n",
" <td>4.222486</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Abbaye de Tamié</td>\n",
" <td>Savoie</td>\n",
" <td>white</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Savoie, France</td>\n",
" <td>45.494895</td>\n",
" <td>6.384660</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1182</th>\n",
" <td>Sveciaost</td>\n",
" <td>Low-laying regions</td>\n",
" <td>pale yellow</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Low-laying regions, Sweden</td>\n",
" <td>59.674971</td>\n",
" <td>14.520858</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1183</th>\n",
" <td>Swag</td>\n",
" <td>South Australia</td>\n",
" <td>white</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>South Australia, Australia</td>\n",
" <td>-30.534367</td>\n",
" <td>135.630121</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1184</th>\n",
" <td>Swaledale</td>\n",
" <td>Swaledale, North Yorkshire</td>\n",
" <td>yellow</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Swaledale, North Yorkshire, England</td>\n",
" <td>54.382993</td>\n",
" <td>-1.984136</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1185</th>\n",
" <td>Sweet Style Swiss</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, Switzerland</td>\n",
" <td>46.798562</td>\n",
" <td>8.231974</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1186</th>\n",
" <td>Swiss cheese</td>\n",
" <td></td>\n",
" <td>pale yellow</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>, United States</td>\n",
" <td>39.783730</td>\n",
" <td>-100.445882</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1140 rows × 204 columns</p>\n",
"</div>"
],
"text/plain": [
" cheese region color vegetarian \\\n",
"0 Aarewasser yellow False \n",
"1 Abbaye de Belloc Pays Basque yellow True \n",
"2 Abbaye de Belval ivory False \n",
"3 Abbaye de Citeaux Burgundy white False \n",
"4 Abbaye de Tamié Savoie white False \n",
"... ... ... ... ... \n",
"1182 Sveciaost Low-laying regions pale yellow False \n",
"1183 Swag South Australia white True \n",
"1184 Swaledale Swaledale, North Yorkshire yellow True \n",
"1185 Sweet Style Swiss NaN False \n",
"1186 Swiss cheese pale yellow True \n",
"\n",
" vegan location latitude longitude \\\n",
"0 False , Switzerland 46.798562 8.231974 \n",
"1 False Pays Basque, France 47.686790 7.392763 \n",
"2 False , France 46.603354 1.888334 \n",
"3 False Burgundy, France 47.278087 4.222486 \n",
"4 False Savoie, France 45.494895 6.384660 \n",
"... ... ... ... ... \n",
"1182 False Low-laying regions, Sweden 59.674971 14.520858 \n",
"1183 False South Australia, Australia -30.534367 135.630121 \n",
"1184 False Swaledale, North Yorkshire, England 54.382993 -1.984136 \n",
"1185 False , Switzerland 46.798562 8.231974 \n",
"1186 False , United States 39.783730 -100.445882 \n",
"\n",
" Lithuania ... Italian Cheese Scotland Mexico burnt caramel \\\n",
"0 False False ... False False False False \n",
"1 False False ... False False False True \n",
"2 False False ... False False False False \n",
"3 False False ... False False False False \n",
"4 False False ... False False False False \n",
"... ... ... ... ... ... ... ... \n",
"1182 False False ... False False False False \n",
"1183 False False ... False False False False \n",
"1184 False False ... False False False False \n",
"1185 False False ... False False False False \n",
"1186 False False ... False False False False \n",
"\n",
" lactic Raclette rindless water buffalo Mauritania Belgium \n",
"0 False False False False False False \n",
"1 False False False False False False \n",
"2 False False False False False False \n",
"3 False False False False False False \n",
"4 False False False False False False \n",
"... ... ... ... ... ... ... \n",
"1182 False False True False False False \n",
"1183 False False False False False False \n",
"1184 False False False False False False \n",
"1185 False False False False False False \n",
"1186 False False True False False False \n",
"\n",
"[1140 rows x 204 columns]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_features"
]
},
{
"cell_type": "markdown",
"id": "a1b022a3-a2f9-4e39-9e79-48ae9f6adca5",
"metadata": {},
"source": [
"## Classification"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "94bcde38-784b-41d9-89b0-3e2e17aa2979",
"metadata": {},
"outputs": [],
"source": [
"from sklearn import tree"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "7b2b9d3e-d7da-4f43-9e1c-4e62e837ed0b",
"metadata": {},
"outputs": [],
"source": [
"c=tree.DecisionTreeClassifier()"
]
},
{
"cell_type": "markdown",
"id": "100a7c2e-2d24-4814-bd68-4b9f6433ce4d",
"metadata": {},
"source": [
"Transformer: la couleur en RGB; la localisation en GPS\n",
"1ère question: est-ce que la couleur suffit à savoir d'où ça vient ? \n",
"2ème question: est-ce que si on ajoute le type ça marche ? \n",
"3ème question: et les caractéristiques gustatives ?\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "24e7ff6e-c308-4cc8-aeac-eeb372f4c479",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>region</th>\n",
" <th>color</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" <th>location</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" <th></th>\n",
" <th>Lithuania</th>\n",
" <th>...</th>\n",
" <th>Italian Cheese</th>\n",
" <th>Scotland</th>\n",
" <th>Mexico</th>\n",
" <th>burnt caramel</th>\n",
" <th>lactic</th>\n",
" <th>Raclette</th>\n",
" <th>rindless</th>\n",
" <th>water buffalo</th>\n",
" <th>Mauritania</th>\n",
" <th>Belgium</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aarewasser</td>\n",
" <td></td>\n",
" <td>yellow</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, Switzerland</td>\n",
" <td>46.798562</td>\n",
" <td>8.231974</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Abbaye de Belloc</td>\n",
" <td>Pays Basque</td>\n",
" <td>yellow</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Pays Basque, France</td>\n",
" <td>47.686790</td>\n",
" <td>7.392763</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Abbaye de Belval</td>\n",
" <td></td>\n",
" <td>ivory</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, France</td>\n",
" <td>46.603354</td>\n",
" <td>1.888334</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Abbaye de Citeaux</td>\n",
" <td>Burgundy</td>\n",
" <td>white</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Burgundy, France</td>\n",
" <td>47.278087</td>\n",
" <td>4.222486</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Abbaye de Tamié</td>\n",
" <td>Savoie</td>\n",
" <td>white</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Savoie, France</td>\n",
" <td>45.494895</td>\n",
" <td>6.384660</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1182</th>\n",
" <td>Sveciaost</td>\n",
" <td>Low-laying regions</td>\n",
" <td>pale yellow</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>Low-laying regions, Sweden</td>\n",
" <td>59.674971</td>\n",
" <td>14.520858</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1183</th>\n",
" <td>Swag</td>\n",
" <td>South Australia</td>\n",
" <td>white</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>South Australia, Australia</td>\n",
" <td>-30.534367</td>\n",
" <td>135.630121</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1184</th>\n",
" <td>Swaledale</td>\n",
" <td>Swaledale, North Yorkshire</td>\n",
" <td>yellow</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>Swaledale, North Yorkshire, England</td>\n",
" <td>54.382993</td>\n",
" <td>-1.984136</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1185</th>\n",
" <td>Sweet Style Swiss</td>\n",
" <td></td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>, Switzerland</td>\n",
" <td>46.798562</td>\n",
" <td>8.231974</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1186</th>\n",
" <td>Swiss cheese</td>\n",
" <td></td>\n",
" <td>pale yellow</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>, United States</td>\n",
" <td>39.783730</td>\n",
" <td>-100.445882</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>...</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1140 rows × 204 columns</p>\n",
"</div>"
],
"text/plain": [
" cheese region color vegetarian \\\n",
"0 Aarewasser yellow False \n",
"1 Abbaye de Belloc Pays Basque yellow True \n",
"2 Abbaye de Belval ivory False \n",
"3 Abbaye de Citeaux Burgundy white False \n",
"4 Abbaye de Tamié Savoie white False \n",
"... ... ... ... ... \n",
"1182 Sveciaost Low-laying regions pale yellow False \n",
"1183 Swag South Australia white True \n",
"1184 Swaledale Swaledale, North Yorkshire yellow True \n",
"1185 Sweet Style Swiss NaN False \n",
"1186 Swiss cheese pale yellow True \n",
"\n",
" vegan location latitude longitude \\\n",
"0 False , Switzerland 46.798562 8.231974 \n",
"1 False Pays Basque, France 47.686790 7.392763 \n",
"2 False , France 46.603354 1.888334 \n",
"3 False Burgundy, France 47.278087 4.222486 \n",
"4 False Savoie, France 45.494895 6.384660 \n",
"... ... ... ... ... \n",
"1182 False Low-laying regions, Sweden 59.674971 14.520858 \n",
"1183 False South Australia, Australia -30.534367 135.630121 \n",
"1184 False Swaledale, North Yorkshire, England 54.382993 -1.984136 \n",
"1185 False , Switzerland 46.798562 8.231974 \n",
"1186 False , United States 39.783730 -100.445882 \n",
"\n",
" Lithuania ... Italian Cheese Scotland Mexico burnt caramel \\\n",
"0 False False ... False False False False \n",
"1 False False ... False False False True \n",
"2 False False ... False False False False \n",
"3 False False ... False False False False \n",
"4 False False ... False False False False \n",
"... ... ... ... ... ... ... ... \n",
"1182 False False ... False False False False \n",
"1183 False False ... False False False False \n",
"1184 False False ... False False False False \n",
"1185 False False ... False False False False \n",
"1186 False False ... False False False False \n",
"\n",
" lactic Raclette rindless water buffalo Mauritania Belgium \n",
"0 False False False False False False \n",
"1 False False False False False False \n",
"2 False False False False False False \n",
"3 False False False False False False \n",
"4 False False False False False False \n",
"... ... ... ... ... ... ... \n",
"1182 False False True False False False \n",
"1183 False False False False False False \n",
"1184 False False False False False False \n",
"1185 False False False False False False \n",
"1186 False False True False False False \n",
"\n",
"[1140 rows x 204 columns]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_features"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ca969d41-a88a-47d9-b94b-8b633d3d3348",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "e2c9b84f-b899-4c99-abb7-37a9deeafbb5",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "d41c1cfc-1564-4131-8391-c8a8971b9d13",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 28,
"id": "42a1e4ed-9a1e-41f8-a322-b5d2de68d24a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cheese</th>\n",
" <th>milk</th>\n",
" <th>country</th>\n",
" <th>region</th>\n",
" <th>family</th>\n",
" <th>type</th>\n",
" <th>texture</th>\n",
" <th>rind</th>\n",
" <th>color</th>\n",
" <th>flavor</th>\n",
" <th>aroma</th>\n",
" <th>vegetarian</th>\n",
" <th>vegan</th>\n",
" <th>location</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [cheese, milk, country, region, family, type, texture, rind, color, flavor, aroma, vegetarian, vegan, location, latitude, longitude]\n",
"Index: []"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[pd.isnull(data[\"country\"])&pd.isnull(data[\"region\"])]\n"
]
},
{
"cell_type": "markdown",
"id": "038cd38e-3890-4f73-91a7-c30294b3bc5b",
"metadata": {},
"source": [
"## Pattern Mining"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "2e6b0dc1-030c-4239-803f-52736a41bcb5",
"metadata": {},
"outputs": [],
"source": [
"data_features_only=data_features.drop(columns=[\"vegetarian\",\"vegan\",\"cheese\",\"region\",\"color\",\"location\",\"latitude\",\"longitude\"])"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "23b75579-95bb-4889-928f-9c3c1309a18a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"196"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_features_only.shape[1]"
]
},
{
"cell_type": "markdown",
"id": "b76e8b2f-2efc-43f7-9aa7-fffb960313ad",
"metadata": {},
"source": [
"We have $196$ features in our data, that is very big compared to the number of rows of our data. So, we choose a min_support of $0.1$ during the apriori algorithm for pattern mining. "
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "e7113235-7546-4c71-9b34-181472466d20",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>support</th>\n",
" <th>itemsets</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.188596</td>\n",
" <td>(hard)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.328947</td>\n",
" <td>(soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.108772</td>\n",
" <td>(washed)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.298246</td>\n",
" <td>(smooth)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.221053</td>\n",
" <td>(firm)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.135088</td>\n",
" <td>(spicy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.075439</td>\n",
" <td>(Cheddar)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.097368</td>\n",
" <td>(salty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.079825</td>\n",
" <td>(bloomy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.108772</td>\n",
" <td>(soft-ripened)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.195614</td>\n",
" <td>(semi-hard)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.655263</td>\n",
" <td>(cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.560526</td>\n",
" <td>(creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0.088596</td>\n",
" <td>(earthy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0.148246</td>\n",
" <td>(France)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0.060526</td>\n",
" <td>(savory)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0.055263</td>\n",
" <td>(herbaceous)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>0.224561</td>\n",
" <td>(goat)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>0.078070</td>\n",
" <td>(Blue)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>0.098246</td>\n",
" <td>(aromatic)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>0.079825</td>\n",
" <td>(dense)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>0.072807</td>\n",
" <td>(England)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>0.070175</td>\n",
" <td>(blue-veined)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.057018</td>\n",
" <td>(Canada)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0.254386</td>\n",
" <td>(sweet)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0.054386</td>\n",
" <td>(supple)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>0.371053</td>\n",
" <td>(natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>0.136842</td>\n",
" <td>(strong)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>0.135088</td>\n",
" <td>(rich)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>0.087719</td>\n",
" <td>(fruity)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>0.135965</td>\n",
" <td>(tangy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>0.055263</td>\n",
" <td>(Brie)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>0.198246</td>\n",
" <td>(mild)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>0.078070</td>\n",
" <td>(sharp)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>0.267544</td>\n",
" <td>(United States)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>0.066667</td>\n",
" <td>(full-flavored)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>0.188596</td>\n",
" <td>(crumbly)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>0.203509</td>\n",
" <td>(nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>0.058772</td>\n",
" <td>(fresh soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>0.067544</td>\n",
" <td>(grassy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>0.069298</td>\n",
" <td>(open)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>0.123684</td>\n",
" <td>(Italy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>0.160526</td>\n",
" <td>(sheep)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>0.052632</td>\n",
" <td>(compact)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>0.100877</td>\n",
" <td>(milky)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>0.228947</td>\n",
" <td>(semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>0.203509</td>\n",
" <td>(buttery)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>0.064912</td>\n",
" <td>(acidic)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>0.541228</td>\n",
" <td>(artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>0.126316</td>\n",
" <td>(fresh)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>0.089474</td>\n",
" <td>(rindless)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>0.064035</td>\n",
" <td>(hard, firm)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>0.142982</td>\n",
" <td>(hard, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>0.060526</td>\n",
" <td>(hard, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>0.050877</td>\n",
" <td>(sweet, hard)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>0.103509</td>\n",
" <td>(hard, natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>0.084211</td>\n",
" <td>(hard, crumbly)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>0.072807</td>\n",
" <td>(hard, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>0.110526</td>\n",
" <td>(hard, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>0.124561</td>\n",
" <td>(soft, smooth)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>0.067544</td>\n",
" <td>(bloomy, soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>0.088596</td>\n",
" <td>(soft, soft-ripened)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>0.200000</td>\n",
" <td>(soft, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63</th>\n",
" <td>0.228070</td>\n",
" <td>(soft, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>0.092982</td>\n",
" <td>(soft, France)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>0.100877</td>\n",
" <td>(goat, soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>0.068421</td>\n",
" <td>(sweet, soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>0.073684</td>\n",
" <td>(natural, soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>0.071053</td>\n",
" <td>(mild, soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>0.068421</td>\n",
" <td>(United States, soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>0.085088</td>\n",
" <td>(buttery, soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>0.153509</td>\n",
" <td>(soft, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>72</th>\n",
" <td>0.058772</td>\n",
" <td>(fresh, soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>73</th>\n",
" <td>0.084211</td>\n",
" <td>(washed, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>74</th>\n",
" <td>0.060526</td>\n",
" <td>(washed, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75</th>\n",
" <td>0.051754</td>\n",
" <td>(washed, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>76</th>\n",
" <td>0.187719</td>\n",
" <td>(smooth, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>77</th>\n",
" <td>0.193860</td>\n",
" <td>(smooth, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>78</th>\n",
" <td>0.064912</td>\n",
" <td>(smooth, France)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>79</th>\n",
" <td>0.071930</td>\n",
" <td>(goat, smooth)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>80</th>\n",
" <td>0.086842</td>\n",
" <td>(sweet, smooth)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>81</th>\n",
" <td>0.103509</td>\n",
" <td>(natural, smooth)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>82</th>\n",
" <td>0.069298</td>\n",
" <td>(mild, smooth)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>83</th>\n",
" <td>0.067544</td>\n",
" <td>(United States, smooth)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84</th>\n",
" <td>0.067544</td>\n",
" <td>(smooth, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>85</th>\n",
" <td>0.080702</td>\n",
" <td>(smooth, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>86</th>\n",
" <td>0.064912</td>\n",
" <td>(buttery, smooth)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>87</th>\n",
" <td>0.169298</td>\n",
" <td>(smooth, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>88</th>\n",
" <td>0.069298</td>\n",
" <td>(semi-hard, firm)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>89</th>\n",
" <td>0.143860</td>\n",
" <td>(firm, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>90</th>\n",
" <td>0.074561</td>\n",
" <td>(firm, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>91</th>\n",
" <td>0.071053</td>\n",
" <td>(sweet, firm)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>92</th>\n",
" <td>0.094737</td>\n",
" <td>(natural, firm)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>93</th>\n",
" <td>0.073684</td>\n",
" <td>(United States, firm)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94</th>\n",
" <td>0.061404</td>\n",
" <td>(firm, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>0.135965</td>\n",
" <td>(firm, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>96</th>\n",
" <td>0.103509</td>\n",
" <td>(cow, spicy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>0.069298</td>\n",
" <td>(creamy, spicy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>0.072807</td>\n",
" <td>(natural, spicy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>99</th>\n",
" <td>0.083333</td>\n",
" <td>(spicy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100</th>\n",
" <td>0.071053</td>\n",
" <td>(cow, Cheddar)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>101</th>\n",
" <td>0.050877</td>\n",
" <td>(Cheddar, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>102</th>\n",
" <td>0.066667</td>\n",
" <td>(salty, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>103</th>\n",
" <td>0.052632</td>\n",
" <td>(salty, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>104</th>\n",
" <td>0.057895</td>\n",
" <td>(bloomy, soft-ripened)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>105</th>\n",
" <td>0.057895</td>\n",
" <td>(bloomy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>106</th>\n",
" <td>0.066667</td>\n",
" <td>(bloomy, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>107</th>\n",
" <td>0.075439</td>\n",
" <td>(soft-ripened, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>108</th>\n",
" <td>0.084211</td>\n",
" <td>(creamy, soft-ripened)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>109</th>\n",
" <td>0.143860</td>\n",
" <td>(semi-hard, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110</th>\n",
" <td>0.092982</td>\n",
" <td>(semi-hard, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>111</th>\n",
" <td>0.057018</td>\n",
" <td>(semi-hard, sweet)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>112</th>\n",
" <td>0.110526</td>\n",
" <td>(semi-hard, natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>113</th>\n",
" <td>0.066667</td>\n",
" <td>(semi-hard, United States)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>114</th>\n",
" <td>0.053509</td>\n",
" <td>(semi-hard, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>115</th>\n",
" <td>0.122807</td>\n",
" <td>(semi-hard, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>116</th>\n",
" <td>0.378070</td>\n",
" <td>(creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>117</th>\n",
" <td>0.059649</td>\n",
" <td>(cow, earthy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>118</th>\n",
" <td>0.086842</td>\n",
" <td>(France, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>119</th>\n",
" <td>0.063158</td>\n",
" <td>(Blue, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>120</th>\n",
" <td>0.063158</td>\n",
" <td>(aromatic, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>121</th>\n",
" <td>0.051754</td>\n",
" <td>(cow, dense)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>122</th>\n",
" <td>0.057018</td>\n",
" <td>(England, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>123</th>\n",
" <td>0.057895</td>\n",
" <td>(blue-veined, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>124</th>\n",
" <td>0.160526</td>\n",
" <td>(sweet, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>125</th>\n",
" <td>0.250000</td>\n",
" <td>(natural, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>126</th>\n",
" <td>0.093860</td>\n",
" <td>(strong, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>127</th>\n",
" <td>0.109649</td>\n",
" <td>(rich, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>128</th>\n",
" <td>0.070175</td>\n",
" <td>(fruity, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>129</th>\n",
" <td>0.080702</td>\n",
" <td>(cow, tangy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>130</th>\n",
" <td>0.126316</td>\n",
" <td>(mild, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>131</th>\n",
" <td>0.057895</td>\n",
" <td>(sharp, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>132</th>\n",
" <td>0.176316</td>\n",
" <td>(United States, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>133</th>\n",
" <td>0.124561</td>\n",
" <td>(crumbly, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>134</th>\n",
" <td>0.142105</td>\n",
" <td>(cow, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>135</th>\n",
" <td>0.052632</td>\n",
" <td>(open, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>136</th>\n",
" <td>0.063158</td>\n",
" <td>(Italy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>137</th>\n",
" <td>0.064035</td>\n",
" <td>(milky, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>138</th>\n",
" <td>0.153509</td>\n",
" <td>(cow, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>139</th>\n",
" <td>0.163158</td>\n",
" <td>(buttery, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>140</th>\n",
" <td>0.331579</td>\n",
" <td>(cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>141</th>\n",
" <td>0.063158</td>\n",
" <td>(fresh, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>142</th>\n",
" <td>0.057018</td>\n",
" <td>(rindless, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>143</th>\n",
" <td>0.052632</td>\n",
" <td>(creamy, earthy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144</th>\n",
" <td>0.085088</td>\n",
" <td>(creamy, France)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>145</th>\n",
" <td>0.133333</td>\n",
" <td>(goat, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>146</th>\n",
" <td>0.060526</td>\n",
" <td>(Blue, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>147</th>\n",
" <td>0.057018</td>\n",
" <td>(aromatic, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>148</th>\n",
" <td>0.050877</td>\n",
" <td>(England, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>149</th>\n",
" <td>0.056140</td>\n",
" <td>(blue-veined, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>150</th>\n",
" <td>0.140351</td>\n",
" <td>(sweet, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>151</th>\n",
" <td>0.184211</td>\n",
" <td>(natural, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>152</th>\n",
" <td>0.067544</td>\n",
" <td>(strong, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>153</th>\n",
" <td>0.089474</td>\n",
" <td>(creamy, rich)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>154</th>\n",
" <td>0.065789</td>\n",
" <td>(creamy, tangy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>155</th>\n",
" <td>0.130702</td>\n",
" <td>(mild, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>156</th>\n",
" <td>0.169298</td>\n",
" <td>(United States, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>157</th>\n",
" <td>0.075439</td>\n",
" <td>(creamy, crumbly)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>158</th>\n",
" <td>0.100000</td>\n",
" <td>(creamy, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>159</th>\n",
" <td>0.067544</td>\n",
" <td>(sheep, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>160</th>\n",
" <td>0.065789</td>\n",
" <td>(milky, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>161</th>\n",
" <td>0.151754</td>\n",
" <td>(creamy, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>162</th>\n",
" <td>0.131579</td>\n",
" <td>(buttery, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>163</th>\n",
" <td>0.306140</td>\n",
" <td>(creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>164</th>\n",
" <td>0.091228</td>\n",
" <td>(fresh, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>165</th>\n",
" <td>0.056140</td>\n",
" <td>(rindless, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>166</th>\n",
" <td>0.052632</td>\n",
" <td>(goat, France)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>167</th>\n",
" <td>0.069298</td>\n",
" <td>(France, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>168</th>\n",
" <td>0.050877</td>\n",
" <td>(goat, sweet)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>169</th>\n",
" <td>0.065789</td>\n",
" <td>(goat, natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>170</th>\n",
" <td>0.051754</td>\n",
" <td>(goat, mild)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>171</th>\n",
" <td>0.078070</td>\n",
" <td>(United States, goat)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>172</th>\n",
" <td>0.050000</td>\n",
" <td>(goat, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>173</th>\n",
" <td>0.128070</td>\n",
" <td>(goat, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>174</th>\n",
" <td>0.060526</td>\n",
" <td>(Blue, blue-veined)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>175</th>\n",
" <td>0.057895</td>\n",
" <td>(aromatic, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>176</th>\n",
" <td>0.050877</td>\n",
" <td>(dense, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>177</th>\n",
" <td>0.100877</td>\n",
" <td>(sweet, natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>178</th>\n",
" <td>0.057018</td>\n",
" <td>(mild, sweet)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>179</th>\n",
" <td>0.089474</td>\n",
" <td>(United States, sweet)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>180</th>\n",
" <td>0.076316</td>\n",
" <td>(sweet, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>181</th>\n",
" <td>0.061404</td>\n",
" <td>(sweet, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>182</th>\n",
" <td>0.060526</td>\n",
" <td>(sweet, buttery)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>183</th>\n",
" <td>0.151754</td>\n",
" <td>(sweet, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>184</th>\n",
" <td>0.056140</td>\n",
" <td>(natural, strong)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>185</th>\n",
" <td>0.059649</td>\n",
" <td>(natural, tangy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>186</th>\n",
" <td>0.077193</td>\n",
" <td>(mild, natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>187</th>\n",
" <td>0.108772</td>\n",
" <td>(United States, natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>188</th>\n",
" <td>0.101754</td>\n",
" <td>(natural, crumbly)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>189</th>\n",
" <td>0.091228</td>\n",
" <td>(natural, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>190</th>\n",
" <td>0.072807</td>\n",
" <td>(natural, Italy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>191</th>\n",
" <td>0.074561</td>\n",
" <td>(sheep, natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>192</th>\n",
" <td>0.072807</td>\n",
" <td>(natural, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193</th>\n",
" <td>0.063158</td>\n",
" <td>(buttery, natural)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>194</th>\n",
" <td>0.238596</td>\n",
" <td>(natural, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>195</th>\n",
" <td>0.078947</td>\n",
" <td>(strong, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>0.059649</td>\n",
" <td>(United States, rich)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>0.079825</td>\n",
" <td>(rich, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>0.053509</td>\n",
" <td>(fruity, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>0.065789</td>\n",
" <td>(United States, tangy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>0.085965</td>\n",
" <td>(artisan, tangy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>201</th>\n",
" <td>0.059649</td>\n",
" <td>(United States, mild)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>202</th>\n",
" <td>0.106140</td>\n",
" <td>(mild, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>203</th>\n",
" <td>0.061404</td>\n",
" <td>(United States, crumbly)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>204</th>\n",
" <td>0.071930</td>\n",
" <td>(United States, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>205</th>\n",
" <td>0.065789</td>\n",
" <td>(United States, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>206</th>\n",
" <td>0.065789</td>\n",
" <td>(United States, buttery)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>207</th>\n",
" <td>0.184211</td>\n",
" <td>(United States, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>208</th>\n",
" <td>0.051754</td>\n",
" <td>(crumbly, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>209</th>\n",
" <td>0.122807</td>\n",
" <td>(crumbly, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>210</th>\n",
" <td>0.056140</td>\n",
" <td>(buttery, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>211</th>\n",
" <td>0.121053</td>\n",
" <td>(nutty, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>212</th>\n",
" <td>0.051754</td>\n",
" <td>(sheep, Italy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>213</th>\n",
" <td>0.081579</td>\n",
" <td>(Italy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>214</th>\n",
" <td>0.104386</td>\n",
" <td>(sheep, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>215</th>\n",
" <td>0.054386</td>\n",
" <td>(milky, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>216</th>\n",
" <td>0.051754</td>\n",
" <td>(buttery, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>217</th>\n",
" <td>0.126316</td>\n",
" <td>(semi-soft, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>218</th>\n",
" <td>0.103509</td>\n",
" <td>(buttery, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>219</th>\n",
" <td>0.071930</td>\n",
" <td>(fresh, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>220</th>\n",
" <td>0.052632</td>\n",
" <td>(hard, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>221</th>\n",
" <td>0.078947</td>\n",
" <td>(hard, natural, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>222</th>\n",
" <td>0.065789</td>\n",
" <td>(hard, crumbly, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>223</th>\n",
" <td>0.055263</td>\n",
" <td>(hard, cow, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>224</th>\n",
" <td>0.082456</td>\n",
" <td>(hard, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>225</th>\n",
" <td>0.051754</td>\n",
" <td>(hard, natural, crumbly)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>226</th>\n",
" <td>0.069298</td>\n",
" <td>(hard, natural, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>227</th>\n",
" <td>0.076316</td>\n",
" <td>(soft, smooth, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>228</th>\n",
" <td>0.086842</td>\n",
" <td>(soft, smooth, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>229</th>\n",
" <td>0.069298</td>\n",
" <td>(soft, smooth, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>230</th>\n",
" <td>0.054386</td>\n",
" <td>(bloomy, soft, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>231</th>\n",
" <td>0.057018</td>\n",
" <td>(bloomy, soft, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>232</th>\n",
" <td>0.066667</td>\n",
" <td>(soft-ripened, soft, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>233</th>\n",
" <td>0.070175</td>\n",
" <td>(soft, creamy, soft-ripened)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>234</th>\n",
" <td>0.145614</td>\n",
" <td>(soft, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>235</th>\n",
" <td>0.068421</td>\n",
" <td>(buttery, soft, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>236</th>\n",
" <td>0.085088</td>\n",
" <td>(soft, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>237</th>\n",
" <td>0.055263</td>\n",
" <td>(soft, creamy, France)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>238</th>\n",
" <td>0.064912</td>\n",
" <td>(goat, soft, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>239</th>\n",
" <td>0.051754</td>\n",
" <td>(mild, soft, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>240</th>\n",
" <td>0.050000</td>\n",
" <td>(United States, soft, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>241</th>\n",
" <td>0.068421</td>\n",
" <td>(buttery, soft, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>242</th>\n",
" <td>0.106140</td>\n",
" <td>(soft, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>243</th>\n",
" <td>0.053509</td>\n",
" <td>(goat, soft, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>244</th>\n",
" <td>0.130702</td>\n",
" <td>(creamy, smooth, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>245</th>\n",
" <td>0.051754</td>\n",
" <td>(sweet, smooth, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>246</th>\n",
" <td>0.064035</td>\n",
" <td>(natural, smooth, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>247</th>\n",
" <td>0.055263</td>\n",
" <td>(smooth, cow, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>248</th>\n",
" <td>0.052632</td>\n",
" <td>(buttery, smooth, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>249</th>\n",
" <td>0.099123</td>\n",
" <td>(smooth, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>250</th>\n",
" <td>0.057895</td>\n",
" <td>(sweet, smooth, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>251</th>\n",
" <td>0.059649</td>\n",
" <td>(natural, smooth, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>252</th>\n",
" <td>0.050877</td>\n",
" <td>(mild, smooth, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>253</th>\n",
" <td>0.051754</td>\n",
" <td>(United States, smooth, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>254</th>\n",
" <td>0.057018</td>\n",
" <td>(smooth, creamy, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>255</th>\n",
" <td>0.108772</td>\n",
" <td>(smooth, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>256</th>\n",
" <td>0.054386</td>\n",
" <td>(sweet, smooth, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>257</th>\n",
" <td>0.073684</td>\n",
" <td>(natural, smooth, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>258</th>\n",
" <td>0.052632</td>\n",
" <td>(semi-hard, firm, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>259</th>\n",
" <td>0.067544</td>\n",
" <td>(natural, firm, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>260</th>\n",
" <td>0.077193</td>\n",
" <td>(firm, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>261</th>\n",
" <td>0.052632</td>\n",
" <td>(firm, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>262</th>\n",
" <td>0.058772</td>\n",
" <td>(natural, firm, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>263</th>\n",
" <td>0.055263</td>\n",
" <td>(United States, firm, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>264</th>\n",
" <td>0.052632</td>\n",
" <td>(cow, creamy, spicy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>265</th>\n",
" <td>0.057018</td>\n",
" <td>(cow, natural, spicy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>266</th>\n",
" <td>0.059649</td>\n",
" <td>(cow, spicy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>267</th>\n",
" <td>0.050000</td>\n",
" <td>(natural, spicy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>268</th>\n",
" <td>0.050877</td>\n",
" <td>(bloomy, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>269</th>\n",
" <td>0.062281</td>\n",
" <td>(soft-ripened, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>270</th>\n",
" <td>0.073684</td>\n",
" <td>(semi-hard, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>271</th>\n",
" <td>0.079825</td>\n",
" <td>(semi-hard, natural, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>272</th>\n",
" <td>0.050000</td>\n",
" <td>(semi-hard, United States, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>273</th>\n",
" <td>0.085088</td>\n",
" <td>(semi-hard, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>274</th>\n",
" <td>0.061404</td>\n",
" <td>(semi-hard, natural, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>275</th>\n",
" <td>0.064035</td>\n",
" <td>(semi-hard, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>276</th>\n",
" <td>0.077193</td>\n",
" <td>(semi-hard, natural, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>277</th>\n",
" <td>0.052632</td>\n",
" <td>(France, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>278</th>\n",
" <td>0.050877</td>\n",
" <td>(Blue, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>279</th>\n",
" <td>0.091228</td>\n",
" <td>(sweet, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>280</th>\n",
" <td>0.135088</td>\n",
" <td>(natural, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>281</th>\n",
" <td>0.054386</td>\n",
" <td>(creamy, strong, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>282</th>\n",
" <td>0.069298</td>\n",
" <td>(rich, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>283</th>\n",
" <td>0.081579</td>\n",
" <td>(mild, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284</th>\n",
" <td>0.107018</td>\n",
" <td>(United States, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>285</th>\n",
" <td>0.074561</td>\n",
" <td>(cow, creamy, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>286</th>\n",
" <td>0.104386</td>\n",
" <td>(creamy, cow, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>287</th>\n",
" <td>0.107895</td>\n",
" <td>(buttery, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>288</th>\n",
" <td>0.192982</td>\n",
" <td>(creamy, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>289</th>\n",
" <td>0.050000</td>\n",
" <td>(Blue, blue-veined, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>290</th>\n",
" <td>0.065789</td>\n",
" <td>(sweet, natural, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>291</th>\n",
" <td>0.064912</td>\n",
" <td>(United States, sweet, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>292</th>\n",
" <td>0.054386</td>\n",
" <td>(sweet, cow, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>293</th>\n",
" <td>0.086842</td>\n",
" <td>(sweet, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>294</th>\n",
" <td>0.085965</td>\n",
" <td>(United States, natural, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>295</th>\n",
" <td>0.069298</td>\n",
" <td>(natural, crumbly, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>296</th>\n",
" <td>0.068421</td>\n",
" <td>(cow, natural, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>297</th>\n",
" <td>0.050000</td>\n",
" <td>(natural, cow, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>298</th>\n",
" <td>0.050000</td>\n",
" <td>(buttery, natural, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>299</th>\n",
" <td>0.151754</td>\n",
" <td>(natural, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>300</th>\n",
" <td>0.050877</td>\n",
" <td>(strong, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>301</th>\n",
" <td>0.059649</td>\n",
" <td>(rich, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>302</th>\n",
" <td>0.055263</td>\n",
" <td>(mild, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>303</th>\n",
" <td>0.054386</td>\n",
" <td>(United States, cow, nutty)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>304</th>\n",
" <td>0.053509</td>\n",
" <td>(United States, buttery, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>305</th>\n",
" <td>0.120175</td>\n",
" <td>(United States, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>306</th>\n",
" <td>0.080702</td>\n",
" <td>(crumbly, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>307</th>\n",
" <td>0.081579</td>\n",
" <td>(cow, nutty, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>308</th>\n",
" <td>0.072807</td>\n",
" <td>(semi-soft, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>309</th>\n",
" <td>0.083333</td>\n",
" <td>(buttery, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>310</th>\n",
" <td>0.055263</td>\n",
" <td>(United States, creamy, goat)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>311</th>\n",
" <td>0.079825</td>\n",
" <td>(goat, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>312</th>\n",
" <td>0.052632</td>\n",
" <td>(United States, sweet, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>313</th>\n",
" <td>0.083333</td>\n",
" <td>(sweet, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>314</th>\n",
" <td>0.060526</td>\n",
" <td>(United States, natural, creamy)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>315</th>\n",
" <td>0.050877</td>\n",
" <td>(natural, creamy, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>316</th>\n",
" <td>0.121053</td>\n",
" <td>(natural, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>317</th>\n",
" <td>0.053509</td>\n",
" <td>(creamy, rich, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>318</th>\n",
" <td>0.064912</td>\n",
" <td>(mild, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>319</th>\n",
" <td>0.050000</td>\n",
" <td>(United States, creamy, semi-soft)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>320</th>\n",
" <td>0.113158</td>\n",
" <td>(United States, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>321</th>\n",
" <td>0.060526</td>\n",
" <td>(creamy, nutty, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>322</th>\n",
" <td>0.086842</td>\n",
" <td>(semi-soft, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>323</th>\n",
" <td>0.066667</td>\n",
" <td>(buttery, creamy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>324</th>\n",
" <td>0.071930</td>\n",
" <td>(sweet, natural, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>325</th>\n",
" <td>0.059649</td>\n",
" <td>(United States, sweet, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>326</th>\n",
" <td>0.050000</td>\n",
" <td>(sweet, nutty, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>327</th>\n",
" <td>0.050877</td>\n",
" <td>(mild, natural, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>328</th>\n",
" <td>0.081579</td>\n",
" <td>(United States, natural, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>329</th>\n",
" <td>0.069298</td>\n",
" <td>(natural, crumbly, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>330</th>\n",
" <td>0.064912</td>\n",
" <td>(natural, nutty, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>331</th>\n",
" <td>0.054386</td>\n",
" <td>(natural, Italy, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>332</th>\n",
" <td>0.059649</td>\n",
" <td>(sheep, natural, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>333</th>\n",
" <td>0.050000</td>\n",
" <td>(United States, crumbly, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>334</th>\n",
" <td>0.054386</td>\n",
" <td>(United States, nutty, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>335</th>\n",
" <td>0.054386</td>\n",
" <td>(hard, natural, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336</th>\n",
" <td>0.057895</td>\n",
" <td>(creamy, soft, smooth, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>337</th>\n",
" <td>0.057018</td>\n",
" <td>(soft, creamy, cow, soft-ripened)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>338</th>\n",
" <td>0.056140</td>\n",
" <td>(buttery, soft, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>339</th>\n",
" <td>0.059649</td>\n",
" <td>(soft, creamy, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>340</th>\n",
" <td>0.070175</td>\n",
" <td>(creamy, smooth, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>341</th>\n",
" <td>0.050000</td>\n",
" <td>(semi-hard, natural, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>342</th>\n",
" <td>0.050877</td>\n",
" <td>(semi-hard, natural, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>343</th>\n",
" <td>0.050000</td>\n",
" <td>(sweet, creamy, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>344</th>\n",
" <td>0.051754</td>\n",
" <td>(United States, natural, creamy, cow)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>345</th>\n",
" <td>0.085088</td>\n",
" <td>(natural, creamy, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>346</th>\n",
" <td>0.069298</td>\n",
" <td>(United States, creamy, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>347</th>\n",
" <td>0.054386</td>\n",
" <td>(semi-soft, creamy, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>348</th>\n",
" <td>0.055263</td>\n",
" <td>(buttery, creamy, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>349</th>\n",
" <td>0.064035</td>\n",
" <td>(United States, natural, cow, artisan)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>350</th>\n",
" <td>0.050000</td>\n",
" <td>(cow, natural, nutty, artisan)</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"frequent_itemsets=apriori(data_features_only,min_support=.05, use_colnames=True)\n",
"display(HTML(frequent_itemsets.to_html()))"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "61959c04-61bf-464a-89ca-72ec4782f927",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>antecedents</th>\n",
" <th>consequents</th>\n",
" <th>antecedent support</th>\n",
" <th>consequent support</th>\n",
" <th>support</th>\n",
" <th>confidence</th>\n",
" <th>lift</th>\n",
" <th>representativity</th>\n",
" <th>leverage</th>\n",
" <th>conviction</th>\n",
" <th>zhangs_metric</th>\n",
" <th>jaccard</th>\n",
" <th>certainty</th>\n",
" <th>kulczynski</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>(hard)</td>\n",
" <td>(cow)</td>\n",
" <td>0.188596</td>\n",
" <td>0.655263</td>\n",
" <td>0.142982</td>\n",
" <td>0.758140</td>\n",
" <td>1.157000</td>\n",
" <td>1.0</td>\n",
" <td>0.019402</td>\n",
" <td>1.425354</td>\n",
" <td>0.167236</td>\n",
" <td>0.204005</td>\n",
" <td>0.298420</td>\n",
" <td>0.488173</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>(hard)</td>\n",
" <td>(natural)</td>\n",
" <td>0.188596</td>\n",
" <td>0.371053</td>\n",
" <td>0.103509</td>\n",
" <td>0.548837</td>\n",
" <td>1.479136</td>\n",
" <td>1.0</td>\n",
" <td>0.033530</td>\n",
" <td>1.394059</td>\n",
" <td>0.399221</td>\n",
" <td>0.226923</td>\n",
" <td>0.282670</td>\n",
" <td>0.413899</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>(hard)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.188596</td>\n",
" <td>0.541228</td>\n",
" <td>0.110526</td>\n",
" <td>0.586047</td>\n",
" <td>1.082809</td>\n",
" <td>1.0</td>\n",
" <td>0.008453</td>\n",
" <td>1.108269</td>\n",
" <td>0.094251</td>\n",
" <td>0.178470</td>\n",
" <td>0.097692</td>\n",
" <td>0.395130</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>(soft)</td>\n",
" <td>(cow)</td>\n",
" <td>0.328947</td>\n",
" <td>0.655263</td>\n",
" <td>0.200000</td>\n",
" <td>0.608000</td>\n",
" <td>0.927871</td>\n",
" <td>1.0</td>\n",
" <td>-0.015547</td>\n",
" <td>0.879431</td>\n",
" <td>-0.103815</td>\n",
" <td>0.255034</td>\n",
" <td>-0.137099</td>\n",
" <td>0.456610</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>(soft)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.328947</td>\n",
" <td>0.560526</td>\n",
" <td>0.228070</td>\n",
" <td>0.693333</td>\n",
" <td>1.236933</td>\n",
" <td>1.0</td>\n",
" <td>0.043687</td>\n",
" <td>1.433066</td>\n",
" <td>0.285445</td>\n",
" <td>0.344828</td>\n",
" <td>0.302196</td>\n",
" <td>0.550110</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>(smooth)</td>\n",
" <td>(cow)</td>\n",
" <td>0.298246</td>\n",
" <td>0.655263</td>\n",
" <td>0.187719</td>\n",
" <td>0.629412</td>\n",
" <td>0.960548</td>\n",
" <td>1.0</td>\n",
" <td>-0.007710</td>\n",
" <td>0.930242</td>\n",
" <td>-0.055292</td>\n",
" <td>0.245132</td>\n",
" <td>-0.074989</td>\n",
" <td>0.457946</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>(smooth)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.298246</td>\n",
" <td>0.560526</td>\n",
" <td>0.193860</td>\n",
" <td>0.650000</td>\n",
" <td>1.159624</td>\n",
" <td>1.0</td>\n",
" <td>0.026685</td>\n",
" <td>1.255639</td>\n",
" <td>0.196154</td>\n",
" <td>0.291557</td>\n",
" <td>0.203593</td>\n",
" <td>0.497926</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>(smooth)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.298246</td>\n",
" <td>0.541228</td>\n",
" <td>0.169298</td>\n",
" <td>0.567647</td>\n",
" <td>1.048813</td>\n",
" <td>1.0</td>\n",
" <td>0.007879</td>\n",
" <td>1.061105</td>\n",
" <td>0.066321</td>\n",
" <td>0.252618</td>\n",
" <td>0.057586</td>\n",
" <td>0.440225</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>(firm)</td>\n",
" <td>(cow)</td>\n",
" <td>0.221053</td>\n",
" <td>0.655263</td>\n",
" <td>0.143860</td>\n",
" <td>0.650794</td>\n",
" <td>0.993179</td>\n",
" <td>1.0</td>\n",
" <td>-0.000988</td>\n",
" <td>0.987201</td>\n",
" <td>-0.008740</td>\n",
" <td>0.196407</td>\n",
" <td>-0.012965</td>\n",
" <td>0.435169</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>(firm)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.221053</td>\n",
" <td>0.541228</td>\n",
" <td>0.135965</td>\n",
" <td>0.615079</td>\n",
" <td>1.136451</td>\n",
" <td>1.0</td>\n",
" <td>0.016325</td>\n",
" <td>1.191861</td>\n",
" <td>0.154141</td>\n",
" <td>0.217087</td>\n",
" <td>0.160976</td>\n",
" <td>0.433147</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>(spicy)</td>\n",
" <td>(cow)</td>\n",
" <td>0.135088</td>\n",
" <td>0.655263</td>\n",
" <td>0.103509</td>\n",
" <td>0.766234</td>\n",
" <td>1.169353</td>\n",
" <td>1.0</td>\n",
" <td>0.014991</td>\n",
" <td>1.474708</td>\n",
" <td>0.167446</td>\n",
" <td>0.150702</td>\n",
" <td>0.321899</td>\n",
" <td>0.462099</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>(semi-hard)</td>\n",
" <td>(cow)</td>\n",
" <td>0.195614</td>\n",
" <td>0.655263</td>\n",
" <td>0.143860</td>\n",
" <td>0.735426</td>\n",
" <td>1.122337</td>\n",
" <td>1.0</td>\n",
" <td>0.015681</td>\n",
" <td>1.302988</td>\n",
" <td>0.135509</td>\n",
" <td>0.203474</td>\n",
" <td>0.232533</td>\n",
" <td>0.477485</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>(semi-hard)</td>\n",
" <td>(natural)</td>\n",
" <td>0.195614</td>\n",
" <td>0.371053</td>\n",
" <td>0.110526</td>\n",
" <td>0.565022</td>\n",
" <td>1.522755</td>\n",
" <td>1.0</td>\n",
" <td>0.037943</td>\n",
" <td>1.445931</td>\n",
" <td>0.426780</td>\n",
" <td>0.242308</td>\n",
" <td>0.308404</td>\n",
" <td>0.431447</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>(semi-hard)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.195614</td>\n",
" <td>0.541228</td>\n",
" <td>0.122807</td>\n",
" <td>0.627803</td>\n",
" <td>1.159960</td>\n",
" <td>1.0</td>\n",
" <td>0.016935</td>\n",
" <td>1.232604</td>\n",
" <td>0.171436</td>\n",
" <td>0.200000</td>\n",
" <td>0.188709</td>\n",
" <td>0.427354</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>(creamy)</td>\n",
" <td>(cow)</td>\n",
" <td>0.560526</td>\n",
" <td>0.655263</td>\n",
" <td>0.378070</td>\n",
" <td>0.674491</td>\n",
" <td>1.029344</td>\n",
" <td>1.0</td>\n",
" <td>0.010778</td>\n",
" <td>1.059071</td>\n",
" <td>0.064868</td>\n",
" <td>0.451309</td>\n",
" <td>0.055777</td>\n",
" <td>0.625733</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>(cow)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.655263</td>\n",
" <td>0.560526</td>\n",
" <td>0.378070</td>\n",
" <td>0.576975</td>\n",
" <td>1.029344</td>\n",
" <td>1.0</td>\n",
" <td>0.010778</td>\n",
" <td>1.038882</td>\n",
" <td>0.082694</td>\n",
" <td>0.451309</td>\n",
" <td>0.037427</td>\n",
" <td>0.625733</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>(sweet)</td>\n",
" <td>(cow)</td>\n",
" <td>0.254386</td>\n",
" <td>0.655263</td>\n",
" <td>0.160526</td>\n",
" <td>0.631034</td>\n",
" <td>0.963025</td>\n",
" <td>1.0</td>\n",
" <td>-0.006163</td>\n",
" <td>0.934333</td>\n",
" <td>-0.048973</td>\n",
" <td>0.214286</td>\n",
" <td>-0.070282</td>\n",
" <td>0.438007</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>(natural)</td>\n",
" <td>(cow)</td>\n",
" <td>0.371053</td>\n",
" <td>0.655263</td>\n",
" <td>0.250000</td>\n",
" <td>0.673759</td>\n",
" <td>1.028226</td>\n",
" <td>1.0</td>\n",
" <td>0.006863</td>\n",
" <td>1.056693</td>\n",
" <td>0.043647</td>\n",
" <td>0.322034</td>\n",
" <td>0.053652</td>\n",
" <td>0.527642</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>(rich)</td>\n",
" <td>(cow)</td>\n",
" <td>0.135088</td>\n",
" <td>0.655263</td>\n",
" <td>0.109649</td>\n",
" <td>0.811688</td>\n",
" <td>1.238721</td>\n",
" <td>1.0</td>\n",
" <td>0.021131</td>\n",
" <td>1.830672</td>\n",
" <td>0.222815</td>\n",
" <td>0.161082</td>\n",
" <td>0.453752</td>\n",
" <td>0.489512</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>(mild)</td>\n",
" <td>(cow)</td>\n",
" <td>0.198246</td>\n",
" <td>0.655263</td>\n",
" <td>0.126316</td>\n",
" <td>0.637168</td>\n",
" <td>0.972385</td>\n",
" <td>1.0</td>\n",
" <td>-0.003587</td>\n",
" <td>0.950128</td>\n",
" <td>-0.034209</td>\n",
" <td>0.173703</td>\n",
" <td>-0.052489</td>\n",
" <td>0.414970</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>(United States)</td>\n",
" <td>(cow)</td>\n",
" <td>0.267544</td>\n",
" <td>0.655263</td>\n",
" <td>0.176316</td>\n",
" <td>0.659016</td>\n",
" <td>1.005728</td>\n",
" <td>1.0</td>\n",
" <td>0.001004</td>\n",
" <td>1.011007</td>\n",
" <td>0.007775</td>\n",
" <td>0.236193</td>\n",
" <td>0.010887</td>\n",
" <td>0.464046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>(crumbly)</td>\n",
" <td>(cow)</td>\n",
" <td>0.188596</td>\n",
" <td>0.655263</td>\n",
" <td>0.124561</td>\n",
" <td>0.660465</td>\n",
" <td>1.007939</td>\n",
" <td>1.0</td>\n",
" <td>0.000981</td>\n",
" <td>1.015321</td>\n",
" <td>0.009707</td>\n",
" <td>0.173171</td>\n",
" <td>0.015090</td>\n",
" <td>0.425279</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>(nutty)</td>\n",
" <td>(cow)</td>\n",
" <td>0.203509</td>\n",
" <td>0.655263</td>\n",
" <td>0.142105</td>\n",
" <td>0.698276</td>\n",
" <td>1.065642</td>\n",
" <td>1.0</td>\n",
" <td>0.008753</td>\n",
" <td>1.142556</td>\n",
" <td>0.077337</td>\n",
" <td>0.198286</td>\n",
" <td>0.124770</td>\n",
" <td>0.457572</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>(semi-soft)</td>\n",
" <td>(cow)</td>\n",
" <td>0.228947</td>\n",
" <td>0.655263</td>\n",
" <td>0.153509</td>\n",
" <td>0.670498</td>\n",
" <td>1.023250</td>\n",
" <td>1.0</td>\n",
" <td>0.003488</td>\n",
" <td>1.046236</td>\n",
" <td>0.029469</td>\n",
" <td>0.210084</td>\n",
" <td>0.044193</td>\n",
" <td>0.452384</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>(buttery)</td>\n",
" <td>(cow)</td>\n",
" <td>0.203509</td>\n",
" <td>0.655263</td>\n",
" <td>0.163158</td>\n",
" <td>0.801724</td>\n",
" <td>1.223515</td>\n",
" <td>1.0</td>\n",
" <td>0.029806</td>\n",
" <td>1.738673</td>\n",
" <td>0.229359</td>\n",
" <td>0.234552</td>\n",
" <td>0.424849</td>\n",
" <td>0.525360</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>(cow)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.655263</td>\n",
" <td>0.541228</td>\n",
" <td>0.331579</td>\n",
" <td>0.506024</td>\n",
" <td>0.934955</td>\n",
" <td>1.0</td>\n",
" <td>-0.023068</td>\n",
" <td>0.928733</td>\n",
" <td>-0.167919</td>\n",
" <td>0.383367</td>\n",
" <td>-0.076735</td>\n",
" <td>0.559333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>(artisan)</td>\n",
" <td>(cow)</td>\n",
" <td>0.541228</td>\n",
" <td>0.655263</td>\n",
" <td>0.331579</td>\n",
" <td>0.612642</td>\n",
" <td>0.934955</td>\n",
" <td>1.0</td>\n",
" <td>-0.023068</td>\n",
" <td>0.889969</td>\n",
" <td>-0.131676</td>\n",
" <td>0.383367</td>\n",
" <td>-0.123634</td>\n",
" <td>0.559333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>(goat)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.224561</td>\n",
" <td>0.560526</td>\n",
" <td>0.133333</td>\n",
" <td>0.593750</td>\n",
" <td>1.059272</td>\n",
" <td>1.0</td>\n",
" <td>0.007461</td>\n",
" <td>1.081781</td>\n",
" <td>0.072160</td>\n",
" <td>0.204576</td>\n",
" <td>0.075599</td>\n",
" <td>0.415811</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>(sweet)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.254386</td>\n",
" <td>0.560526</td>\n",
" <td>0.140351</td>\n",
" <td>0.551724</td>\n",
" <td>0.984297</td>\n",
" <td>1.0</td>\n",
" <td>-0.002239</td>\n",
" <td>0.980364</td>\n",
" <td>-0.020949</td>\n",
" <td>0.208062</td>\n",
" <td>-0.020029</td>\n",
" <td>0.401058</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>(mild)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.198246</td>\n",
" <td>0.560526</td>\n",
" <td>0.130702</td>\n",
" <td>0.659292</td>\n",
" <td>1.176202</td>\n",
" <td>1.0</td>\n",
" <td>0.019580</td>\n",
" <td>1.289884</td>\n",
" <td>0.186847</td>\n",
" <td>0.208101</td>\n",
" <td>0.224736</td>\n",
" <td>0.446234</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>(United States)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.267544</td>\n",
" <td>0.560526</td>\n",
" <td>0.169298</td>\n",
" <td>0.632787</td>\n",
" <td>1.128916</td>\n",
" <td>1.0</td>\n",
" <td>0.019333</td>\n",
" <td>1.196781</td>\n",
" <td>0.155906</td>\n",
" <td>0.256991</td>\n",
" <td>0.164425</td>\n",
" <td>0.467411</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>(semi-soft)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.228947</td>\n",
" <td>0.560526</td>\n",
" <td>0.151754</td>\n",
" <td>0.662835</td>\n",
" <td>1.182523</td>\n",
" <td>1.0</td>\n",
" <td>0.023423</td>\n",
" <td>1.303439</td>\n",
" <td>0.200181</td>\n",
" <td>0.237964</td>\n",
" <td>0.232799</td>\n",
" <td>0.466785</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>(buttery)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.203509</td>\n",
" <td>0.560526</td>\n",
" <td>0.131579</td>\n",
" <td>0.646552</td>\n",
" <td>1.153473</td>\n",
" <td>1.0</td>\n",
" <td>0.017507</td>\n",
" <td>1.243389</td>\n",
" <td>0.167048</td>\n",
" <td>0.208044</td>\n",
" <td>0.195746</td>\n",
" <td>0.440647</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>(creamy)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.560526</td>\n",
" <td>0.541228</td>\n",
" <td>0.306140</td>\n",
" <td>0.546166</td>\n",
" <td>1.009123</td>\n",
" <td>1.0</td>\n",
" <td>0.002768</td>\n",
" <td>1.010880</td>\n",
" <td>0.020572</td>\n",
" <td>0.384785</td>\n",
" <td>0.010763</td>\n",
" <td>0.555903</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>(artisan)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.541228</td>\n",
" <td>0.560526</td>\n",
" <td>0.306140</td>\n",
" <td>0.565640</td>\n",
" <td>1.009123</td>\n",
" <td>1.0</td>\n",
" <td>0.002768</td>\n",
" <td>1.011773</td>\n",
" <td>0.019707</td>\n",
" <td>0.384785</td>\n",
" <td>0.011636</td>\n",
" <td>0.555903</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>(goat)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.224561</td>\n",
" <td>0.541228</td>\n",
" <td>0.128070</td>\n",
" <td>0.570312</td>\n",
" <td>1.053738</td>\n",
" <td>1.0</td>\n",
" <td>0.006531</td>\n",
" <td>1.067687</td>\n",
" <td>0.065766</td>\n",
" <td>0.200825</td>\n",
" <td>0.063396</td>\n",
" <td>0.403471</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>(sweet)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.254386</td>\n",
" <td>0.541228</td>\n",
" <td>0.151754</td>\n",
" <td>0.596552</td>\n",
" <td>1.102219</td>\n",
" <td>1.0</td>\n",
" <td>0.014074</td>\n",
" <td>1.137127</td>\n",
" <td>0.124379</td>\n",
" <td>0.235695</td>\n",
" <td>0.120591</td>\n",
" <td>0.438470</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>(crumbly)</td>\n",
" <td>(natural)</td>\n",
" <td>0.188596</td>\n",
" <td>0.371053</td>\n",
" <td>0.101754</td>\n",
" <td>0.539535</td>\n",
" <td>1.454066</td>\n",
" <td>1.0</td>\n",
" <td>0.031775</td>\n",
" <td>1.365896</td>\n",
" <td>0.384856</td>\n",
" <td>0.222222</td>\n",
" <td>0.267880</td>\n",
" <td>0.406883</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>(natural)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.371053</td>\n",
" <td>0.541228</td>\n",
" <td>0.238596</td>\n",
" <td>0.643026</td>\n",
" <td>1.188087</td>\n",
" <td>1.0</td>\n",
" <td>0.037772</td>\n",
" <td>1.285169</td>\n",
" <td>0.251707</td>\n",
" <td>0.354167</td>\n",
" <td>0.221892</td>\n",
" <td>0.541934</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>(mild)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.198246</td>\n",
" <td>0.541228</td>\n",
" <td>0.106140</td>\n",
" <td>0.535398</td>\n",
" <td>0.989228</td>\n",
" <td>1.0</td>\n",
" <td>-0.001156</td>\n",
" <td>0.987452</td>\n",
" <td>-0.013399</td>\n",
" <td>0.167590</td>\n",
" <td>-0.012707</td>\n",
" <td>0.365754</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>(United States)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.267544</td>\n",
" <td>0.541228</td>\n",
" <td>0.184211</td>\n",
" <td>0.688525</td>\n",
" <td>1.272152</td>\n",
" <td>1.0</td>\n",
" <td>0.039408</td>\n",
" <td>1.472899</td>\n",
" <td>0.292073</td>\n",
" <td>0.294944</td>\n",
" <td>0.321067</td>\n",
" <td>0.514441</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>(crumbly)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.188596</td>\n",
" <td>0.541228</td>\n",
" <td>0.122807</td>\n",
" <td>0.651163</td>\n",
" <td>1.203121</td>\n",
" <td>1.0</td>\n",
" <td>0.020733</td>\n",
" <td>1.315146</td>\n",
" <td>0.208069</td>\n",
" <td>0.202312</td>\n",
" <td>0.239628</td>\n",
" <td>0.439034</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>(nutty)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.203509</td>\n",
" <td>0.541228</td>\n",
" <td>0.121053</td>\n",
" <td>0.594828</td>\n",
" <td>1.099033</td>\n",
" <td>1.0</td>\n",
" <td>0.010908</td>\n",
" <td>1.132288</td>\n",
" <td>0.113133</td>\n",
" <td>0.194093</td>\n",
" <td>0.116833</td>\n",
" <td>0.409245</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>(sheep)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.160526</td>\n",
" <td>0.541228</td>\n",
" <td>0.104386</td>\n",
" <td>0.650273</td>\n",
" <td>1.201477</td>\n",
" <td>1.0</td>\n",
" <td>0.017505</td>\n",
" <td>1.311801</td>\n",
" <td>0.199758</td>\n",
" <td>0.174743</td>\n",
" <td>0.237689</td>\n",
" <td>0.421571</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>(semi-soft)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.228947</td>\n",
" <td>0.541228</td>\n",
" <td>0.126316</td>\n",
" <td>0.551724</td>\n",
" <td>1.019393</td>\n",
" <td>1.0</td>\n",
" <td>0.002403</td>\n",
" <td>1.023414</td>\n",
" <td>0.024673</td>\n",
" <td>0.196185</td>\n",
" <td>0.022879</td>\n",
" <td>0.392556</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>(buttery)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.203509</td>\n",
" <td>0.541228</td>\n",
" <td>0.103509</td>\n",
" <td>0.508621</td>\n",
" <td>0.939753</td>\n",
" <td>1.0</td>\n",
" <td>-0.006636</td>\n",
" <td>0.933641</td>\n",
" <td>-0.074494</td>\n",
" <td>0.161423</td>\n",
" <td>-0.071075</td>\n",
" <td>0.349934</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>(soft, creamy)</td>\n",
" <td>(cow)</td>\n",
" <td>0.228070</td>\n",
" <td>0.655263</td>\n",
" <td>0.145614</td>\n",
" <td>0.638462</td>\n",
" <td>0.974359</td>\n",
" <td>1.0</td>\n",
" <td>-0.003832</td>\n",
" <td>0.953527</td>\n",
" <td>-0.032967</td>\n",
" <td>0.197384</td>\n",
" <td>-0.048738</td>\n",
" <td>0.430342</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>(soft, cow)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.200000</td>\n",
" <td>0.560526</td>\n",
" <td>0.145614</td>\n",
" <td>0.728070</td>\n",
" <td>1.298905</td>\n",
" <td>1.0</td>\n",
" <td>0.033509</td>\n",
" <td>1.616129</td>\n",
" <td>0.287651</td>\n",
" <td>0.236805</td>\n",
" <td>0.381238</td>\n",
" <td>0.493926</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>(soft, artisan)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.153509</td>\n",
" <td>0.560526</td>\n",
" <td>0.106140</td>\n",
" <td>0.691429</td>\n",
" <td>1.233535</td>\n",
" <td>1.0</td>\n",
" <td>0.020095</td>\n",
" <td>1.424220</td>\n",
" <td>0.223654</td>\n",
" <td>0.174603</td>\n",
" <td>0.297861</td>\n",
" <td>0.440393</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>(smooth, creamy)</td>\n",
" <td>(cow)</td>\n",
" <td>0.193860</td>\n",
" <td>0.655263</td>\n",
" <td>0.130702</td>\n",
" <td>0.674208</td>\n",
" <td>1.028912</td>\n",
" <td>1.0</td>\n",
" <td>0.003673</td>\n",
" <td>1.058151</td>\n",
" <td>0.034857</td>\n",
" <td>0.181929</td>\n",
" <td>0.054955</td>\n",
" <td>0.436836</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>(smooth, cow)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.187719</td>\n",
" <td>0.560526</td>\n",
" <td>0.130702</td>\n",
" <td>0.696262</td>\n",
" <td>1.242157</td>\n",
" <td>1.0</td>\n",
" <td>0.025480</td>\n",
" <td>1.446883</td>\n",
" <td>0.240002</td>\n",
" <td>0.211648</td>\n",
" <td>0.308859</td>\n",
" <td>0.464719</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>(smooth, creamy)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.193860</td>\n",
" <td>0.541228</td>\n",
" <td>0.108772</td>\n",
" <td>0.561086</td>\n",
" <td>1.036690</td>\n",
" <td>1.0</td>\n",
" <td>0.003850</td>\n",
" <td>1.045243</td>\n",
" <td>0.043903</td>\n",
" <td>0.173669</td>\n",
" <td>0.043285</td>\n",
" <td>0.381029</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>(smooth, artisan)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.169298</td>\n",
" <td>0.560526</td>\n",
" <td>0.108772</td>\n",
" <td>0.642487</td>\n",
" <td>1.146221</td>\n",
" <td>1.0</td>\n",
" <td>0.013876</td>\n",
" <td>1.229252</td>\n",
" <td>0.153566</td>\n",
" <td>0.175141</td>\n",
" <td>0.186497</td>\n",
" <td>0.418270</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>(natural, creamy)</td>\n",
" <td>(cow)</td>\n",
" <td>0.184211</td>\n",
" <td>0.655263</td>\n",
" <td>0.135088</td>\n",
" <td>0.733333</td>\n",
" <td>1.119143</td>\n",
" <td>1.0</td>\n",
" <td>0.014381</td>\n",
" <td>1.292763</td>\n",
" <td>0.130499</td>\n",
" <td>0.191781</td>\n",
" <td>0.226463</td>\n",
" <td>0.469746</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>(natural, cow)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.250000</td>\n",
" <td>0.560526</td>\n",
" <td>0.135088</td>\n",
" <td>0.540351</td>\n",
" <td>0.964006</td>\n",
" <td>1.0</td>\n",
" <td>-0.005044</td>\n",
" <td>0.956107</td>\n",
" <td>-0.047423</td>\n",
" <td>0.200000</td>\n",
" <td>-0.045908</td>\n",
" <td>0.390676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>(United States, creamy)</td>\n",
" <td>(cow)</td>\n",
" <td>0.169298</td>\n",
" <td>0.655263</td>\n",
" <td>0.107018</td>\n",
" <td>0.632124</td>\n",
" <td>0.964688</td>\n",
" <td>1.0</td>\n",
" <td>-0.003917</td>\n",
" <td>0.937102</td>\n",
" <td>-0.042205</td>\n",
" <td>0.149144</td>\n",
" <td>-0.067120</td>\n",
" <td>0.397722</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>(United States, cow)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.176316</td>\n",
" <td>0.560526</td>\n",
" <td>0.107018</td>\n",
" <td>0.606965</td>\n",
" <td>1.082849</td>\n",
" <td>1.0</td>\n",
" <td>0.008188</td>\n",
" <td>1.118155</td>\n",
" <td>0.092887</td>\n",
" <td>0.169916</td>\n",
" <td>0.105669</td>\n",
" <td>0.398944</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>(creamy, semi-soft)</td>\n",
" <td>(cow)</td>\n",
" <td>0.151754</td>\n",
" <td>0.655263</td>\n",
" <td>0.104386</td>\n",
" <td>0.687861</td>\n",
" <td>1.049748</td>\n",
" <td>1.0</td>\n",
" <td>0.004947</td>\n",
" <td>1.104435</td>\n",
" <td>0.055869</td>\n",
" <td>0.148564</td>\n",
" <td>0.094559</td>\n",
" <td>0.423583</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>(cow, semi-soft)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.153509</td>\n",
" <td>0.560526</td>\n",
" <td>0.104386</td>\n",
" <td>0.680000</td>\n",
" <td>1.213146</td>\n",
" <td>1.0</td>\n",
" <td>0.018340</td>\n",
" <td>1.373355</td>\n",
" <td>0.207559</td>\n",
" <td>0.171223</td>\n",
" <td>0.271856</td>\n",
" <td>0.433114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>(buttery, creamy)</td>\n",
" <td>(cow)</td>\n",
" <td>0.131579</td>\n",
" <td>0.655263</td>\n",
" <td>0.107895</td>\n",
" <td>0.820000</td>\n",
" <td>1.251406</td>\n",
" <td>1.0</td>\n",
" <td>0.021676</td>\n",
" <td>1.915205</td>\n",
" <td>0.231338</td>\n",
" <td>0.158915</td>\n",
" <td>0.477863</td>\n",
" <td>0.492329</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>(buttery, cow)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.163158</td>\n",
" <td>0.560526</td>\n",
" <td>0.107895</td>\n",
" <td>0.661290</td>\n",
" <td>1.179767</td>\n",
" <td>1.0</td>\n",
" <td>0.016440</td>\n",
" <td>1.297494</td>\n",
" <td>0.182083</td>\n",
" <td>0.175214</td>\n",
" <td>0.229283</td>\n",
" <td>0.426889</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>(buttery)</td>\n",
" <td>(creamy, cow)</td>\n",
" <td>0.203509</td>\n",
" <td>0.378070</td>\n",
" <td>0.107895</td>\n",
" <td>0.530172</td>\n",
" <td>1.402312</td>\n",
" <td>1.0</td>\n",
" <td>0.030954</td>\n",
" <td>1.323741</td>\n",
" <td>0.360195</td>\n",
" <td>0.227778</td>\n",
" <td>0.244565</td>\n",
" <td>0.407778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>(creamy, cow)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.378070</td>\n",
" <td>0.541228</td>\n",
" <td>0.192982</td>\n",
" <td>0.510441</td>\n",
" <td>0.943116</td>\n",
" <td>1.0</td>\n",
" <td>-0.011640</td>\n",
" <td>0.937112</td>\n",
" <td>-0.088407</td>\n",
" <td>0.265700</td>\n",
" <td>-0.067108</td>\n",
" <td>0.433502</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63</th>\n",
" <td>(creamy, artisan)</td>\n",
" <td>(cow)</td>\n",
" <td>0.306140</td>\n",
" <td>0.655263</td>\n",
" <td>0.192982</td>\n",
" <td>0.630372</td>\n",
" <td>0.962014</td>\n",
" <td>1.0</td>\n",
" <td>-0.007620</td>\n",
" <td>0.932660</td>\n",
" <td>-0.053843</td>\n",
" <td>0.251142</td>\n",
" <td>-0.072202</td>\n",
" <td>0.462442</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>(cow, artisan)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.331579</td>\n",
" <td>0.560526</td>\n",
" <td>0.192982</td>\n",
" <td>0.582011</td>\n",
" <td>1.038329</td>\n",
" <td>1.0</td>\n",
" <td>0.007124</td>\n",
" <td>1.051399</td>\n",
" <td>0.055225</td>\n",
" <td>0.276035</td>\n",
" <td>0.048886</td>\n",
" <td>0.463149</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>(natural, cow)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.250000</td>\n",
" <td>0.541228</td>\n",
" <td>0.151754</td>\n",
" <td>0.607018</td>\n",
" <td>1.121556</td>\n",
" <td>1.0</td>\n",
" <td>0.016447</td>\n",
" <td>1.167411</td>\n",
" <td>0.144509</td>\n",
" <td>0.237311</td>\n",
" <td>0.143403</td>\n",
" <td>0.443703</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>(natural, artisan)</td>\n",
" <td>(cow)</td>\n",
" <td>0.238596</td>\n",
" <td>0.655263</td>\n",
" <td>0.151754</td>\n",
" <td>0.636029</td>\n",
" <td>0.970647</td>\n",
" <td>1.0</td>\n",
" <td>-0.004589</td>\n",
" <td>0.947156</td>\n",
" <td>-0.038199</td>\n",
" <td>0.204492</td>\n",
" <td>-0.055793</td>\n",
" <td>0.433811</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>(United States, cow)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.176316</td>\n",
" <td>0.541228</td>\n",
" <td>0.120175</td>\n",
" <td>0.681592</td>\n",
" <td>1.259343</td>\n",
" <td>1.0</td>\n",
" <td>0.024748</td>\n",
" <td>1.440831</td>\n",
" <td>0.250017</td>\n",
" <td>0.201175</td>\n",
" <td>0.305956</td>\n",
" <td>0.451817</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>(United States, artisan)</td>\n",
" <td>(cow)</td>\n",
" <td>0.184211</td>\n",
" <td>0.655263</td>\n",
" <td>0.120175</td>\n",
" <td>0.652381</td>\n",
" <td>0.995601</td>\n",
" <td>1.0</td>\n",
" <td>-0.000531</td>\n",
" <td>0.991709</td>\n",
" <td>-0.005386</td>\n",
" <td>0.167073</td>\n",
" <td>-0.008361</td>\n",
" <td>0.417891</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>(natural, creamy)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.184211</td>\n",
" <td>0.541228</td>\n",
" <td>0.121053</td>\n",
" <td>0.657143</td>\n",
" <td>1.214170</td>\n",
" <td>1.0</td>\n",
" <td>0.021353</td>\n",
" <td>1.338085</td>\n",
" <td>0.216223</td>\n",
" <td>0.200290</td>\n",
" <td>0.252663</td>\n",
" <td>0.440403</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>(natural, artisan)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.238596</td>\n",
" <td>0.560526</td>\n",
" <td>0.121053</td>\n",
" <td>0.507353</td>\n",
" <td>0.905137</td>\n",
" <td>1.0</td>\n",
" <td>-0.012687</td>\n",
" <td>0.892066</td>\n",
" <td>-0.120993</td>\n",
" <td>0.178525</td>\n",
" <td>-0.120993</td>\n",
" <td>0.361658</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>(United States, creamy)</td>\n",
" <td>(artisan)</td>\n",
" <td>0.169298</td>\n",
" <td>0.541228</td>\n",
" <td>0.113158</td>\n",
" <td>0.668394</td>\n",
" <td>1.234958</td>\n",
" <td>1.0</td>\n",
" <td>0.021529</td>\n",
" <td>1.383484</td>\n",
" <td>0.229030</td>\n",
" <td>0.189427</td>\n",
" <td>0.277187</td>\n",
" <td>0.438735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>72</th>\n",
" <td>(United States, artisan)</td>\n",
" <td>(creamy)</td>\n",
" <td>0.184211</td>\n",
" <td>0.560526</td>\n",
" <td>0.113158</td>\n",
" <td>0.614286</td>\n",
" <td>1.095909</td>\n",
" <td>1.0</td>\n",
" <td>0.009903</td>\n",
" <td>1.139376</td>\n",
" <td>0.107277</td>\n",
" <td>0.179167</td>\n",
" <td>0.122327</td>\n",
" <td>0.408082</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(HTML(association_rules(frequent_itemsets, min_threshold=0.5).to_html()))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "744f8d1d-0874-4b92-921f-5a85ccf598ad",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "f99af4d2-20e9-4bff-802a-dbdb91f95a96",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "fa04bb73-ba5c-4164-a1af-f061d9627557",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "36ff5c84-93f3-4854-b2c4-e6082859c974",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "1bb8a528-619e-4ebc-a157-60199cec9de3",
"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.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}