diff --git a/.ipynb_checkpoints/cheese-checkpoint.ipynb b/.ipynb_checkpoints/cheese-checkpoint.ipynb index d9e8d25..a02a90b 100644 --- a/.ipynb_checkpoints/cheese-checkpoint.ipynb +++ b/.ipynb_checkpoints/cheese-checkpoint.ipynb @@ -10,406 +10,45 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "7f4f2b89-8257-468c-9f5e-a77e11b8b8ff", "metadata": {}, "outputs": [], "source": [ - "import pandas as pd\n", - "from mlxtend.preprocessing import TransactionEncoder\n", - "from mlxtend.frequent_patterns import apriori\n", - "from geopy.geocoders import Nominatim\n", - "import matplotlib.pyplot as plt\n", + "import os\n", "import time\n", + "import json\n", + "import random\n", + "import pandas as pd\n", + "import plotly.express as px\n", "import tqdm.notebook as tqdm\n", - "import random\n" + "import matplotlib.pyplot as plt\n", + "from geopy.geocoders import Nominatim\n", + "from IPython.display import display, HTML\n", + "from mlxtend.preprocessing import TransactionEncoder\n", + "from mlxtend.frequent_patterns import apriori, association_rules\n", + "from sklearn import tree\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from sklearn.linear_model import LinearRegression" + ] + }, + { + "cell_type": "markdown", + "id": "ceb71784-b0bf-4015-b8e6-78007c368e49", + "metadata": {}, + "source": [ + "We use the following dataset from Kaggle: [Cheese: 248 different types of cheese with various characteristics](https://www.kaggle.com/datasets/joebeachcapital/cheese). " ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "1a0afba8-692b-4377-a2ce-5114983e3bbb", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - " | cheese | \n", - "url | \n", - "milk | \n", - "country | \n", - "region | \n", - "family | \n", - "type | \n", - "fat_content | \n", - "calcium_content | \n", - "texture | \n", - "rind | \n", - "color | \n", - "flavor | \n", - "aroma | \n", - "vegetarian | \n", - "vegan | \n", - "synonyms | \n", - "alt_spellings | \n", - "producers | \n", - "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", - "Aarewasser | \n", - "https://www.cheese.com/aarewasser/ | \n", - "cow | \n", - "Switzerland | \n", - "NaN | \n", - "NaN | \n", - "semi-soft | \n", - "NaN | \n", - "NaN | \n", - "buttery | \n", - "washed | \n", - "yellow | \n", - "sweet | \n", - "buttery | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "Jumi | \n", - "
1 | \n", - "Abbaye de Belloc | \n", - "https://www.cheese.com/abbaye-de-belloc/ | \n", - "sheep | \n", - "France | \n", - "Pays Basque | \n", - "NaN | \n", - "semi-hard, artisan | \n", - "NaN | \n", - "NaN | \n", - "creamy, dense, firm | \n", - "natural | \n", - "yellow | \n", - "burnt caramel | \n", - "lanoline | \n", - "True | \n", - "False | \n", - "Abbaye Notre-Dame de Belloc | \n", - "NaN | \n", - "NaN | \n", - "
2 | \n", - "Abbaye de Belval | \n", - "https://www.cheese.com/abbaye-de-belval/ | \n", - "cow | \n", - "France | \n", - "NaN | \n", - "NaN | \n", - "semi-hard | \n", - "40-46% | \n", - "NaN | \n", - "elastic | \n", - "washed | \n", - "ivory | \n", - "NaN | \n", - "aromatic | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
3 | \n", - "Abbaye de Citeaux | \n", - "https://www.cheese.com/abbaye-de-citeaux/ | \n", - "cow | \n", - "France | \n", - "Burgundy | \n", - "NaN | \n", - "semi-soft, artisan, brined | \n", - "NaN | \n", - "NaN | \n", - "creamy, dense, smooth | \n", - "washed | \n", - "white | \n", - "acidic, milky, smooth | \n", - "barnyardy, earthy | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
4 | \n", - "Abbaye de Tamié | \n", - "https://www.cheese.com/tamie/ | \n", - "cow | \n", - "France | \n", - "Savoie | \n", - "NaN | \n", - "soft, artisan | \n", - "NaN | \n", - "NaN | \n", - "creamy, open, smooth | \n", - "washed | \n", - "white | \n", - "fruity, nutty | \n", - "perfumed, pungent | \n", - "False | \n", - "False | \n", - "NaN | \n", - "Tamié, Trappiste de Tamie, Abbey of Tamie | \n", - "NaN | \n", - "
... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "
1182 | \n", - "Sveciaost | \n", - "https://www.cheese.com/sveciaost/ | \n", - "cow | \n", - "Sweden | \n", - "Low-laying regions | \n", - "NaN | \n", - "semi-hard, brined | \n", - "45% | \n", - "NaN | \n", - "creamy, supple | \n", - "rindless | \n", - "pale yellow | \n", - "acidic | \n", - "NaN | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
1183 | \n", - "Swag | \n", - "https://www.cheese.com/swag/ | \n", - "goat | \n", - "Australia | \n", - "South Australia | \n", - "NaN | \n", - "fresh firm, artisan | \n", - "NaN | \n", - "NaN | \n", - "creamy, crumbly | \n", - "ash coated | \n", - "white | \n", - "acidic, creamy | \n", - "fresh | \n", - "True | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "Woodside Cheese Wrights | \n", - "
1184 | \n", - "Swaledale | \n", - "https://www.cheese.com/swaledale/ | \n", - "sheep | \n", - "England | \n", - "Swaledale, North Yorkshire | \n", - "NaN | \n", - "hard | \n", - "NaN | \n", - "NaN | \n", - "semi firm | \n", - "NaN | \n", - "yellow | \n", - "smooth, sweet | \n", - "floral | \n", - "True | \n", - "False | \n", - "Swaledale Sheep Cheese | \n", - "NaN | \n", - "NaN | \n", - "
1185 | \n", - "Sweet Style Swiss | \n", - "https://www.cheese.com/sweet-style-swiss/ | \n", - "NaN | \n", - "Switzerland | \n", - "NaN | \n", - "NaN | \n", - "semi-hard, artisan | \n", - "NaN | \n", - "NaN | \n", - "firm, supple | \n", - "waxed | \n", - "NaN | \n", - "nutty | \n", - "nutty, sweet | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
1186 | \n", - "Swiss cheese | \n", - "https://www.cheese.com/swiss/ | \n", - "cow | \n", - "United States | \n", - "NaN | \n", - "Swiss Cheese | \n", - "hard, artisan, processed | \n", - "7.8 g/100g | \n", - "NaN | \n", - "firm | \n", - "rindless | \n", - "pale yellow | \n", - "nutty, sweet | \n", - "NaN | \n", - "True | \n", - "False | \n", - "American Swiss Cheese | \n", - "NaN | \n", - "Various | \n", - "
1187 rows × 19 columns
\n", - "\n", - " | cheese | \n", - "url | \n", - "milk | \n", - "country | \n", - "region | \n", - "family | \n", - "type | \n", - "fat_content | \n", - "calcium_content | \n", - "texture | \n", - "rind | \n", - "color | \n", - "flavor | \n", - "aroma | \n", - "vegetarian | \n", - "vegan | \n", - "synonyms | \n", - "alt_spellings | \n", - "producers | \n", - "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
10 | \n", - "Acapella | \n", - "https://www.cheese.com/acapella/ | \n", - "goat | \n", - "United States | \n", - "California | \n", - "NaN | \n", - "soft, soft-ripened | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "buttery | \n", - "fresh, herbal | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
13 | \n", - "Acorn | \n", - "https://www.cheese.com/acorn/ | \n", - "sheep | \n", - "United Kingdom | \n", - "Bethania | \n", - "NaN | \n", - "hard, artisan | \n", - "52% | \n", - "NaN | \n", - "crumbly, firm | \n", - "NaN | \n", - "NaN | \n", - "burnt caramel, citrusy, herbaceous | \n", - "fruity | \n", - "True | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
19 | \n", - "Afuega'l Pitu | \n", - "https://www.cheese.com/afuegal-pitu/ | \n", - "cow | \n", - "Spain | \n", - "Asturias | \n", - "NaN | \n", - "soft, artisan | \n", - "NaN | \n", - "NaN | \n", - "smooth | \n", - "cloth wrapped | \n", - "NaN | \n", - "spicy, strong | \n", - "NaN | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
48 | \n", - "Alpe di Frabosa | \n", - "https://www.cheese.com/alpe-di-frabosa/ | \n", - "cow | \n", - "Italy | \n", - "NaN | \n", - "NaN | \n", - "semi-soft | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "bitter | \n", - "milky, mushroom | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
50 | \n", - "Alpicrème | \n", - "https://www.cheese.com/alpicreme/ | \n", - "goat | \n", - "France | \n", - "NaN | \n", - "NaN | \n", - "soft | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "
1172 | \n", - "Strathdon Blue | \n", - "https://www.cheese.com/strathdon-blue/ | \n", - "cow | \n", - "Scotland | \n", - "Tain | \n", - "Blue | \n", - "semi-soft | \n", - "NaN | \n", - "NaN | \n", - "creamy | \n", - "NaN | \n", - "NaN | \n", - "creamy, spicy | \n", - "aromatic, rich | \n", - "True | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "Highland Fine Cheeses Limited | \n", - "
1175 | \n", - "String Cheese | \n", - "https://www.cheese.com/string/ | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "semi-hard | \n", - "NaN | \n", - "NaN | \n", - "chewy, firm, stringy | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
1177 | \n", - "Sulguni | \n", - "https://www.cheese.com/sulguni/ | \n", - "buffalo, cow | \n", - "Georgia | \n", - "Svaneti, Samegrelo | \n", - "NaN | \n", - "semi-firm | \n", - "NaN | \n", - "NaN | \n", - "dense, elastic | \n", - "NaN | \n", - "NaN | \n", - "salty, smokey , sour | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "Georgian Pickle Cheese | \n", - "Megruli Sulguni, Shebolili Megruli Sulguni | \n", - "NaN | \n", - "
1181 | \n", - "Sussex Slipcote | \n", - "https://www.cheese.com/sussex-slipcote/ | \n", - "sheep | \n", - "England | \n", - "NaN | \n", - "NaN | \n", - "soft | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "sharp | \n", - "NaN | \n", - "True | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "High Weald Dairy | \n", - "
1185 | \n", - "Sweet Style Swiss | \n", - "https://www.cheese.com/sweet-style-swiss/ | \n", - "NaN | \n", - "Switzerland | \n", - "NaN | \n", - "NaN | \n", - "semi-hard, artisan | \n", - "NaN | \n", - "NaN | \n", - "firm, supple | \n", - "waxed | \n", - "NaN | \n", - "nutty | \n", - "nutty, sweet | \n", - "False | \n", - "False | \n", - "NaN | \n", - "NaN | \n", - "NaN | \n", - "
142 rows × 19 columns
\n", - "\n", - " | cheese | \n", - "milk | \n", - "country | \n", - "region | \n", - "family | \n", - "type | \n", - "texture | \n", - "rind | \n", - "color | \n", - "flavor | \n", - "aroma | \n", - "vegetarian | \n", - "vegan | \n", - "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", - "Aarewasser | \n", - "cow | \n", - "Switzerland | \n", - "NaN | \n", - "NaN | \n", - "semi-soft | \n", - "buttery | \n", - "washed | \n", - "yellow | \n", - "sweet | \n", - "buttery | \n", - "False | \n", - "False | \n", - "
1 | \n", - "Abbaye de Belloc | \n", - "sheep | \n", - "France | \n", - "Pays Basque | \n", - "NaN | \n", - "semi-hard, artisan | \n", - "creamy, dense, firm | \n", - "natural | \n", - "yellow | \n", - "burnt caramel | \n", - "lanoline | \n", - "True | \n", - "False | \n", - "
2 | \n", - "Abbaye de Belval | \n", - "cow | \n", - "France | \n", - "NaN | \n", - "NaN | \n", - "semi-hard | \n", - "elastic | \n", - "washed | \n", - "ivory | \n", - "NaN | \n", - "aromatic | \n", - "False | \n", - "False | \n", - "
3 | \n", - "Abbaye de Citeaux | \n", - "cow | \n", - "France | \n", - "Burgundy | \n", - "NaN | \n", - "semi-soft, artisan, brined | \n", - "creamy, dense, smooth | \n", - "washed | \n", - "white | \n", - "acidic, milky, smooth | \n", - "barnyardy, earthy | \n", - "False | \n", - "False | \n", - "
4 | \n", - "Abbaye de Tamié | \n", - "cow | \n", - "France | \n", - "Savoie | \n", - "NaN | \n", - "soft, artisan | \n", - "creamy, open, smooth | \n", - "washed | \n", - "white | \n", - "fruity, nutty | \n", - "perfumed, pungent | \n", - "False | \n", - "False | \n", - "
... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "
1182 | \n", - "Sveciaost | \n", - "cow | \n", - "Sweden | \n", - "Low-laying regions | \n", - "NaN | \n", - "semi-hard, brined | \n", - "creamy, supple | \n", - "rindless | \n", - "pale yellow | \n", - "acidic | \n", - "NaN | \n", - "False | \n", - "False | \n", - "
1183 | \n", - "Swag | \n", - "goat | \n", - "Australia | \n", - "South Australia | \n", - "NaN | \n", - "fresh firm, artisan | \n", - "creamy, crumbly | \n", - "ash coated | \n", - "white | \n", - "acidic, creamy | \n", - "fresh | \n", - "True | \n", - "False | \n", - "
1184 | \n", - "Swaledale | \n", - "sheep | \n", - "England | \n", - "Swaledale, North Yorkshire | \n", - "NaN | \n", - "hard | \n", - "semi firm | \n", - "NaN | \n", - "yellow | \n", - "smooth, sweet | \n", - "floral | \n", - "True | \n", - "False | \n", - "
1185 | \n", - "Sweet Style Swiss | \n", - "NaN | \n", - "Switzerland | \n", - "NaN | \n", - "NaN | \n", - "semi-hard, artisan | \n", - "firm, supple | \n", - "waxed | \n", - "NaN | \n", - "nutty | \n", - "nutty, sweet | \n", - "False | \n", - "False | \n", - "
1186 | \n", - "Swiss cheese | \n", - "cow | \n", - "United States | \n", - "NaN | \n", - "Swiss Cheese | \n", - "hard, artisan, processed | \n", - "firm | \n", - "rindless | \n", - "pale yellow | \n", - "nutty, sweet | \n", - "NaN | \n", - "True | \n", - "False | \n", - "
1187 rows × 13 columns
\n", - "\n", - " | cheese | \n", - "milk | \n", - "country | \n", - "region | \n", - "family | \n", - "type | \n", - "texture | \n", - "rind | \n", - "color | \n", - "flavor | \n", - "aroma | \n", - "vegetarian | \n", - "vegan | \n", - "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", - "Aarewasser | \n", - "cow | \n", - "Switzerland | \n", - "\n", - " | NaN | \n", - "semi-soft | \n", - "buttery | \n", - "washed | \n", - "yellow | \n", - "sweet | \n", - "buttery | \n", - "False | \n", - "False | \n", - "
1 | \n", - "Abbaye de Belloc | \n", - "sheep | \n", - "France | \n", - "Pays Basque | \n", - "NaN | \n", - "semi-hard, artisan | \n", - "creamy, dense, firm | \n", - "natural | \n", - "yellow | \n", - "burnt caramel | \n", - "lanoline | \n", - "True | \n", - "False | \n", - "
2 | \n", - "Abbaye de Belval | \n", - "cow | \n", - "France | \n", - "\n", - " | NaN | \n", - "semi-hard | \n", - "elastic | \n", - "washed | \n", - "ivory | \n", - "NaN | \n", - "aromatic | \n", - "False | \n", - "False | \n", - "
3 | \n", - "Abbaye de Citeaux | \n", - "cow | \n", - "France | \n", - "Burgundy | \n", - "NaN | \n", - "semi-soft, artisan, brined | \n", - "creamy, dense, smooth | \n", - "washed | \n", - "white | \n", - "acidic, milky, smooth | \n", - "barnyardy, earthy | \n", - "False | \n", - "False | \n", - "
4 | \n", - "Abbaye de Tamié | \n", - "cow | \n", - "France | \n", - "Savoie | \n", - "NaN | \n", - "soft, artisan | \n", - "creamy, open, smooth | \n", - "washed | \n", - "white | \n", - "fruity, nutty | \n", - "perfumed, pungent | \n", - "False | \n", - "False | \n", - "
... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "
1182 | \n", - "Sveciaost | \n", - "cow | \n", - "Sweden | \n", - "Low-laying regions | \n", - "NaN | \n", - "semi-hard, brined | \n", - "creamy, supple | \n", - "rindless | \n", - "pale yellow | \n", - "acidic | \n", - "NaN | \n", - "False | \n", - "False | \n", - "
1183 | \n", - "Swag | \n", - "goat | \n", - "Australia | \n", - "South Australia | \n", - "NaN | \n", - "fresh firm, artisan | \n", - "creamy, crumbly | \n", - "ash coated | \n", - "white | \n", - "acidic, creamy | \n", - "fresh | \n", - "True | \n", - "False | \n", - "
1184 | \n", - "Swaledale | \n", - "sheep | \n", - "England | \n", - "Swaledale, North Yorkshire | \n", - "NaN | \n", - "hard | \n", - "semi firm | \n", - "NaN | \n", - "yellow | \n", - "smooth, sweet | \n", - "floral | \n", - "True | \n", - "False | \n", - "
1185 | \n", - "Sweet Style Swiss | \n", - "NaN | \n", - "Switzerland | \n", - "\n", - " | NaN | \n", - "semi-hard, artisan | \n", - "firm, supple | \n", - "waxed | \n", - "NaN | \n", - "nutty | \n", - "nutty, sweet | \n", - "False | \n", - "False | \n", - "
1186 | \n", - "Swiss cheese | \n", - "cow | \n", - "United States | \n", - "\n", - " | Swiss Cheese | \n", - "hard, artisan, processed | \n", - "firm | \n", - "rindless | \n", - "pale yellow | \n", - "nutty, sweet | \n", - "NaN | \n", - "True | \n", - "False | \n", - "
1181 rows × 13 columns
\n", - "\n", - " | cheese | \n", - "milk | \n", - "country | \n", - "region | \n", - "family | \n", - "type | \n", - "texture | \n", - "rind | \n", - "color | \n", - "flavor | \n", - "aroma | \n", - "vegetarian | \n", - "vegan | \n", - "location | \n", - "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", - "Aarewasser | \n", - "cow | \n", - "Switzerland | \n", - "\n", - " | NaN | \n", - "semi-soft | \n", - "buttery | \n", - "washed | \n", - "yellow | \n", - "sweet | \n", - "buttery | \n", - "False | \n", - "False | \n", - ", Switzerland | \n", - "
1 | \n", - "Abbaye de Belloc | \n", - "sheep | \n", - "France | \n", - "Pays Basque | \n", - "NaN | \n", - "semi-hard, artisan | \n", - "creamy, dense, firm | \n", - "natural | \n", - "yellow | \n", - "burnt caramel | \n", - "lanoline | \n", - "True | \n", - "False | \n", - "Pays Basque, France | \n", - "
2 | \n", - "Abbaye de Belval | \n", - "cow | \n", - "France | \n", - "\n", - " | NaN | \n", - "semi-hard | \n", - "elastic | \n", - "washed | \n", - "ivory | \n", - "NaN | \n", - "aromatic | \n", - "False | \n", - "False | \n", - ", France | \n", - "
3 | \n", - "Abbaye de Citeaux | \n", - "cow | \n", - "France | \n", - "Burgundy | \n", - "NaN | \n", - "semi-soft, artisan, brined | \n", - "creamy, dense, smooth | \n", - "washed | \n", - "white | \n", - "acidic, milky, smooth | \n", - "barnyardy, earthy | \n", - "False | \n", - "False | \n", - "Burgundy, France | \n", - "
4 | \n", - "Abbaye de Tamié | \n", - "cow | \n", - "France | \n", - "Savoie | \n", - "NaN | \n", - "soft, artisan | \n", - "creamy, open, smooth | \n", - "washed | \n", - "white | \n", - "fruity, nutty | \n", - "perfumed, pungent | \n", - "False | \n", - "False | \n", - "Savoie, France | \n", - "
... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "
1182 | \n", - "Sveciaost | \n", - "cow | \n", - "Sweden | \n", - "Low-laying regions | \n", - "NaN | \n", - "semi-hard, brined | \n", - "creamy, supple | \n", - "rindless | \n", - "pale yellow | \n", - "acidic | \n", - "NaN | \n", - "False | \n", - "False | \n", - "Low-laying regions, Sweden | \n", - "
1183 | \n", - "Swag | \n", - "goat | \n", - "Australia | \n", - "South Australia | \n", - "NaN | \n", - "fresh firm, artisan | \n", - "creamy, crumbly | \n", - "ash coated | \n", - "white | \n", - "acidic, creamy | \n", - "fresh | \n", - "True | \n", - "False | \n", - "South Australia, Australia | \n", - "
1184 | \n", - "Swaledale | \n", - "sheep | \n", - "England | \n", - "Swaledale, North Yorkshire | \n", - "NaN | \n", - "hard | \n", - "semi firm | \n", - "NaN | \n", - "yellow | \n", - "smooth, sweet | \n", - "floral | \n", - "True | \n", - "False | \n", - "Swaledale, North Yorkshire, England | \n", - "
1185 | \n", - "Sweet Style Swiss | \n", - "NaN | \n", - "Switzerland | \n", - "\n", - " | NaN | \n", - "semi-hard, artisan | \n", - "firm, supple | \n", - "waxed | \n", - "NaN | \n", - "nutty | \n", - "nutty, sweet | \n", - "False | \n", - "False | \n", - ", Switzerland | \n", - "
1186 | \n", - "Swiss cheese | \n", - "cow | \n", - "United States | \n", - "\n", - " | Swiss Cheese | \n", - "hard, artisan, processed | \n", - "firm | \n", - "rindless | \n", - "pale yellow | \n", - "nutty, sweet | \n", - "NaN | \n", - "True | \n", - "False | \n", - ", United States | \n", - "
1140 rows × 14 columns
\n", - "142 rows × 19 columns
\n", + "1187 rows × 19 columns
\n", "" ], "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", + " 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", - " 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", + " 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 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", + " 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", - " 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", + " 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", - "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", + " 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 \\\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", + " 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", - " 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]" + "[1187 rows x 19 columns]" ] }, "execution_count": 3, @@ -831,7 +829,8 @@ ], "source": [ "print(set(data[\"color\"]))\n", - "data[pd.isnull(data[\"color\"])]" + "data[pd.isnull(data[\"color\"])]\n", + "data" ] }, { @@ -855,22 +854,18 @@ ] }, { - "cell_type": "code", - "execution_count": 5, - "id": "c8489ffa-1067-4eb7-b65a-2fa18fdb4b04", + "cell_type": "markdown", + "id": "4590cffd-d4a9-4e15-8fd5-cbb22f048300", "metadata": {}, - "outputs": [], "source": [ - "unused_columns = [\"alt_spellings\", \"producers\", \"calcium_content\", \"url\", \"fat_content\", \"synonyms\"]\n", - "for col in unused_columns:\n", - " if col in data.columns:\n", - " del data[col]" + "Since those two columns have too much null data, we choose to remove them. \n", + "Similarly, we removed other columns we are not interested in: " ] }, { "cell_type": "code", - "execution_count": 6, - "id": "5379265a-cd49-41fa-845c-bfae33bb8f5a", + "execution_count": 5, + "id": "c8489ffa-1067-4eb7-b65a-2fa18fdb4b04", "metadata": {}, "outputs": [ { @@ -1147,18 +1142,30 @@ "[1187 rows x 13 columns]" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "unused_columns = [\"alt_spellings\", \"producers\", \"calcium_content\", \"url\", \"fat_content\", \"synonyms\"]\n", + "for col in unused_columns:\n", + " if col in data.columns:\n", + " del data[col]\n", "data" ] }, + { + "cell_type": "markdown", + "id": "74044e9b-6ce4-420f-b1ad-492a4362ffb4", + "metadata": {}, + "source": [ + "Now, we are interested in having only one column representing the location for each cheese. " + ] + }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "633ed80e-e416-41f6-ae58-b86ce4c132af", "metadata": {}, "outputs": [ @@ -1168,29 +1175,7 @@ "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": [ @@ -1465,18 +1450,30 @@ "[1181 rows x 13 columns]" ] }, - "execution_count": 8, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "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\")\n", "data" ] }, + { + "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": 9, + "execution_count": 7, "id": "7ef7494b-ff08-40a5-890f-e0f718cf2842", "metadata": {}, "outputs": [], @@ -1486,9 +1483,17 @@ "data.loc[data.country.str.contains(\"Great Britain, United Kingdom, Wales\")|data.country.str.contains(\"United Kingdom, Wales\"),\"country\"]=\"Wales\"" ] }, + { + "cell_type": "markdown", + "id": "c479661d-4019-4557-8c53-d4223f0f246c", + "metadata": {}, + "source": [ + "We change some countries to get more easily the location. " + ] + }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "id": "fb044984-c33c-492c-91a2-4e9fff29ceb3", "metadata": {}, "outputs": [ @@ -1513,7 +1518,6 @@ " \n", "1140 rows × 14 columns
\n", + "1140 rows × 13 columns
\n", "" ], "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", + " 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", - " 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", + " 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", - " 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", + " 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", - " 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", + " 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", - "[1140 rows x 14 columns]" + "[1140 rows x 13 columns]" ] }, - "execution_count": 10, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -1786,7 +1779,8 @@ "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()" + "data.reset_index()\n", + "data" ] }, { @@ -1799,19 +1793,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "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": { @@ -2099,30 +2083,29 @@ "[1140 rows x 14 columns]" ] }, - "execution_count": 12, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "data[\"location\"]=data[\"region\"]+\", \"+data[\"country\"]\n", "data" ] }, { - "cell_type": "code", - "execution_count": 13, - "id": "e2e868d4-33a1-4602-af97-afb1d29e612f", - "metadata": { - "scrolled": true - }, - "outputs": [], + "cell_type": "markdown", + "id": "d42869b5-a4ea-4cd6-bd0e-1532af90f2da", + "metadata": {}, "source": [ - "locs=set(data[\"location\"])" + "### Converting the locations to GPS coordinates\n", + "\n", + "In order to have more numeric data to apply a classification algorithm, we transform the location to GPS coordinates and the color to RGB. " ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 10, "id": "debb780e-ec13-4502-ac44-6001335e507d", "metadata": {}, "outputs": [], @@ -2136,23 +2119,13 @@ " 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": [ + " return (res.latitude, res.longitude)\n", "def get_locations(backup_file):\n", " errors=set()\n", " if os.path.isfile(backup_file):\n", " with open(backup_file) as f:\n", " return json.load(f)\n", - " \n", - " locations_to_gps={}\n", + " locations_to_gps = {}\n", " for loc in tqdm.tqdm(locs):\n", " time.sleep(1) # We don't want to overload the Nominatim server which will stop responding\n", " try:\n", @@ -2168,432 +2141,13 @@ }, { "cell_type": "code", - "execution_count": 16, - "id": "a6966ac7-7a69-4829-8588-d10f85ea98a4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Galax, Virginia, United States': [36.6612387, -80.9239671],\n", - " 'Northeastern Brazil, Brazil': [-10.3333333, -53.2],\n", - " 'Tieton, Washington, United States': [46.7020686, -120.75535],\n", - " 'Central Balkan Mountains, Bulgaria': [42.6073975, 25.4856617],\n", - " 'Postel, Belgium': [51.2874865, 5.1897863],\n", - " ', Netherlands': [52.2434979, 5.6343227],\n", - " 'Äänekoski, Finland': [62.6032186, 25.7301361],\n", - " 'New Hampshire, United States': [43.4849133, -71.6553992],\n", - " 'Friuli Venezia Giulia and Veneto, Italy': [42.6384261, 12.674297],\n", - " 'County Cavan, Ireland': [54.03497495, -7.2937022825583675],\n", - " 'Charentes-Poitou, France': [45.4039367, 0.3756199],\n", - " 'Veneto, ': [45.6476663, 11.8665254],\n", - " 'Lazio, Sardinia, Italy': [41.9808038, 12.7662312],\n", - " 'Fairview, United States': [40.6333724, -90.1637318],\n", - " 'County Wexford, Ireland': [52.46018745, -6.606515459159162],\n", - " 'Southwestern Wisconsin, United States': [42.53116075, -90.43762550236468],\n", - " 'Co. Carlow, Ireland': [52.69078865, -6.825145150844913],\n", - " 'West Pawlet, VT, United States': [43.356893, -73.24966776033015],\n", - " 'Passendale, Belgium': [50.9003015, 3.0203891],\n", - " 'Serra da Estrela, Portugal': [40.4358994, -7.516865473467464],\n", - " 'Centre-Val de Loire, France': [47.5490251, 1.7324062],\n", - " \"Lucerne, Schwyz, Unterwald, and Zoug, and the following additional places: Muri district in d'Argovi, Switzerland\": [47.0505452,\n", - " 8.3054682],\n", - " 'Bjurholm, Sweden': [63.966667, 19.0],\n", - " 'Po valley region, Italy': [42.6384261, 12.674297],\n", - " 'Wales, Great Britain': [53.28236125, -3.8286207326666837],\n", - " ', Denmark': [55.670249, 10.3333283],\n", - " 'Asiago, Italy': [45.8753771, 11.5106998],\n", - " 'Flanders, Belgium': [51.096246199999996, 4.178629103169916],\n", - " 'Languedoc, France': [43.65420305, 3.674669940206605],\n", - " 'Brickhill, Co. Clare, Ireland': [52.70642975, -8.751786760846851],\n", - " 'Ontario, Canada': [50.000678, -86.000977],\n", - " ', Armenia': [4.491976149999999, -75.74135085294314],\n", - " 'Mornington Peninsula, Melbourne, Australia': [-38.3312575,\n", - " 145.08106868543985],\n", - " 'Bergues, France': [50.9683886, 2.4325247],\n", - " 'Pesaro-Urbino, Italy': [43.694112700000005, 12.701443660480004],\n", - " 'Cheshire, England': [53.2141028, -2.471770086071205],\n", - " 'Indiana, United States': [40.3270127, -86.1746933],\n", - " 'Rhone-Alps, France': [45.2968119, 4.6604809],\n", - " 'Stranraer, Scotland': [54.9044332, -5.026204],\n", - " 'Seattle, Washington, United States': [47.6038321, -122.330062],\n", - " 'St. Gallen (canton), Tufertschwil, Switzerland': [47.1561047, 9.338323],\n", - " 'South East England, United Kingdom': [51.45115235, -0.9935673736185868],\n", - " 'Lombardy, Italy': [45.5703694, 9.7732524],\n", - " 'Utah, United States': [39.4225192, -111.714358],\n", - " 'Illinois, United States': [40.0796606, -89.4337288],\n", - " ', Wales': [52.2928116, -3.73893],\n", - " 'Low-laying regions, Sweden': [59.6749712, 14.5208584],\n", - " 'Avesnes, France': [50.5495906, 1.9721295],\n", - " ', Middle East': [39.3014159, -76.5888477],\n", - " 'Midi-Pyrenees, France': [43.8099068, 1.4344926056549236],\n", - " 'Southern California, United States': [34.169262950000004, -116.787448181486],\n", - " 'Piedmont, Italy': [45.060735, 7.923549],\n", - " 'California, United States': [36.7014631, -118.755997],\n", - " 'Gloucestershire, England': [51.7643786, -2.1880661838719386],\n", - " 'North Wootton, England': [52.7923213, 0.4278194],\n", - " 'Severn Valley, England': [52.454530899999995, -2.3755702502240226],\n", - " 'Extremadura, Spain': [39.1748426, -6.1529891],\n", - " 'Cumbrian, United Kingdom': [54.478530449999994, -3.06553306667584],\n", - " 'Lebanon, CT, United States': [40.375713, -76.4626118],\n", - " 'Lodi, Italy': [45.2613104, 9.491678060021837],\n", - " 'Websterville, VT, United States': [44.162985, -72.47576806895253],\n", - " 'Swabia, Germany': [48.15313125, 10.47129100603846],\n", - " 'Stewarton, Scotland': [55.680265, -4.5153023],\n", - " 'Oxfordshire, Great Britain': [51.7412674, -1.2245951],\n", - " 'Ballarat, Victoria, Australia': [-37.5623013, 143.8605645],\n", - " 'old Liburnia (Dalmatia), Croatia': [45.3658443, 15.6575209],\n", - " 'Orkney Isles, Scotland': [56.7861112, -4.1140518],\n", - " 'Puimichel in Provence Alpes, France': [46.603354, 1.8883335],\n", - " ', Israel': [30.8124247, 34.8594762],\n", - " 'Port Townsend, United States': [48.1179702, -122.769544],\n", - " ', Iraq': [33.0955793, 44.1749775],\n", - " ', Greece': [38.9953683, 21.9877132],\n", - " 'Greensboro, VT, United States': [36.0726355, -79.7919754],\n", - " 'Cornwall, England': [50.443348900000004, -4.62465658489158],\n", - " 'South West England, England': [51.50076785, -2.5503106339491204],\n", - " 'Pembrokeshire, United Kingdom': [51.8339209, -4.916667],\n", - " 'Northern Holland, Netherlands': [52.2434979, 5.6343227],\n", - " 'Prince Edward Island, Canada': [46.3355508, -63.1466676],\n", - " 'Central and Western Macedonia, Thessalia, Greece': [38.9953683, 21.9877132],\n", - " 'Richfield, Wisconsin, United States': [44.8766431, -93.2877877],\n", - " 'Burgundy, France': [47.27808725, 4.222486304306048],\n", - " 'Pokolbin, Hunter Valley, Australia': [-32.7792106, 151.2978747],\n", - " 'Cotswolds, England': [51.7489422, -0.2303579],\n", - " 'Beara Peninsula, Co. Cork, Ireland': [51.7280451, -9.767906428362338],\n", - " 'County Tipperary, Clogheen, Ireland': [52.68482145, -7.898147186112796],\n", - " 'Ceredigion, United Kingdom': [52.2945764, -3.9527809990291427],\n", - " 'Dorset, England': [50.79683685, -2.34473226124306],\n", - " 'Maine, United States': [45.709097, -68.8590201],\n", - " ', Switzerland': [46.7985624, 8.2319736],\n", - " 'Bethania, United Kingdom': [52.2509586, -4.0888576],\n", - " 'Laruns, France': [42.9882368, -0.4266324],\n", - " ', Sweden': [59.6749712, 14.5208584],\n", - " 'St. Louis, Missouri, United States': [38.6280278, -90.1910154],\n", - " 'Moliterno, Italy': [40.2423024, 15.868903],\n", - " 'Minas Gerais, Brazil': [-18.5264844, -44.1588654],\n", - " 'Troyes , Aube, France': [48.2971626, 4.0746257],\n", - " 'Veneto, Trentino, Italy': [45.6476663, 11.8665254],\n", - " 'Lincolnshire, England': [53.1823034, -0.2031208542548153],\n", - " 'Co. Offaly, Ireland': [53.13617215, -7.810340751784169],\n", - " 'Quebec, Canada': [52.4760892, -71.8258668],\n", - " 'Allgau, Germany': [47.8241593, 11.6822424],\n", - " ', Hungary': [47.1817585, 19.5060937],\n", - " 'Marathon, NY, United States': [44.8914036, -89.7748098],\n", - " 'Timsbury, Somerset, Scotland': [56.7861112, -4.1140518],\n", - " 'Petaluma, California, United States': [38.2325829, -122.636465],\n", - " 'Landford, England': [50.9700788, -1.6363792],\n", - " 'Piora Valley, Switzerland': [46.7985624, 8.2319736],\n", - " 'Burgund, France': [47.27808725, 4.222486304306048],\n", - " 'Wigtownshire, Scotland': [54.9042579, -5.0248893],\n", - " 'Macedonia, Thrace, Thessalia, Peloponissos, Ionian Islands, Aegean islands, Crete Island and Epirus, Greece': [40.6186482,\n", - " 22.91795361795959],\n", - " ', Australia': [-24.7761086, 134.755],\n", - " 'Staffordshire, England': [52.824694199999996, -2.0074546723348115],\n", - " 'Haute Vienne, France': [45.91901925, 1.203176771876291],\n", - " 'Alba, Italy': [44.7007236, 8.0357786],\n", - " 'Campania, Italy': [40.860672, 14.843984],\n", - " 'Taxco, Mexico': [18.5565446, -99.6052838],\n", - " 'New York, United States': [40.7127281, -74.0060152],\n", - " 'Svaneti, Samegrelo, Georgia': [42.63545205, 42.24871384619953],\n", - " 'East Midlands, England': [53.1188177, -1.2597068974971675],\n", - " 'Fornells de la Selva, Gironès, Spain': [41.9319675, 2.8090343],\n", - " 'North Cornwall, England': [51.7561518, 0.4645198],\n", - " 'Colorado, United States': [38.7251776, -105.607716],\n", - " 'Nicasio, United States': [38.0615885, -122.6985975],\n", - " ', Brazil': [-10.3333333, -53.2],\n", - " 'Pyrenees, France': [48.8738565, 2.3852638],\n", - " 'Derbyshire, Leicestershire, Nottinghamshire, England': [53.1185033,\n", - " -1.5566179305872214],\n", - " 'Québec, Canada': [52.4760892, -71.8258668],\n", - " 'Manitoba, Canada': [55.001251, -97.001038],\n", - " 'Auvergne, Salers, France': [45.2968119, 4.6604809],\n", - " 'Upper Corsica, France': [46.603354, 1.8883335],\n", - " 'Setubal, Palmela and Sesimbra, Portugal': [38.5241783, -8.8932341],\n", - " 'Roncq, France': [50.7531232, 3.1209016],\n", - " 'Oregon Coast Range, United States': [39.7837304, -100.445882],\n", - " ', Mexico': [23.6585116, -102.0077097],\n", - " 'Roxburghshire, Scotland': [56.7861112, -4.1140518],\n", - " 'Tipperary, Ireland': [52.4734839, -8.1614446],\n", - " 'Wisconsin, United States': [44.4308975, -89.6884637],\n", - " 'Mankato, MN, United States': [44.1634663, -93.9993505],\n", - " 'Devon, England': [50.724140500000004, -3.6607788161410735],\n", - " 'Kimball, United States': [41.1881305, -103.6997645],\n", - " 'Brooklyn NY, United States': [40.6526006, -73.9497211],\n", - " 'Northern Wisconsin, United States': [44.94725995, -91.39373410986752],\n", - " 'All Holland, Netherlands': [52.4601118, 4.6056526],\n", - " 'Tuscany, Italy': [43.4586541, 11.1389204],\n", - " 'Avila, Spain': [40.656478, -4.7002172],\n", - " 'Belvederis, Lithuania': [55.0820118, 23.3897023],\n", - " 'Naples, Italy': [40.8358846, 14.2487679],\n", - " 'Galicia, Spain': [42.61946, -7.863112],\n", - " 'Castelo Branco, Fundão and Idanha-a-Nova, Portugal': [39.97675825,\n", - " -7.446059929966704],\n", - " 'Pullman, Washington, United States': [46.7304268, -117.173895],\n", - " 'Aveyron, France': [44.315857449999996, 2.5065697302419823],\n", - " 'Ann Arbor, Michigan, United States': [42.2813722, -83.7484616],\n", - " 'Oregon, United States': [43.9792797, -120.737257],\n", - " ', Austria': [47.59397, 14.12456],\n", - " 'Bregenzerwald, Kleinwalsertal, Großwalsertal, Laiblachtal (Pfänderstock) and Rheintal, Austria': [47.387028799999996,\n", - " 9.95606355528393],\n", - " 'Airedale farming district, New Zealand': [-41.5000831, 172.8344077],\n", - " 'Cevenes, France': [44.3509309, 3.8584812791602983],\n", - " 'massif des Causses, France': [46.603354, 1.8883335],\n", - " 'Stawley, near Wellington, Somerset, England': [50.9961449, -3.3382702],\n", - " 'Canary Islands, Spain': [28.286398900000002, -16.796011808910734],\n", - " 'Timsbury, Somerset, England': [51.3271927, -2.4755923],\n", - " 'Anjou, France': [45.3462, 4.88149],\n", - " 'Co Limerick, Ireland': [52.518831649999996, -8.795834650292788],\n", - " 'Coquet, England': [54.88091196980861, -1.5495607774216265],\n", - " 'Modena, Italy': [44.5384728, 10.935960870530739],\n", - " 'Herefordshire, West Midlands, United Kingdom': [52.083333, -2.75],\n", - " 'Dalmatia, Croatia': [43.538796500000004, 16.175235566874342],\n", - " 'Gloucestershire County, England': [51.9425914, -2.100154122305389],\n", - " 'Prince Edward County, Ontario, Canada': [44.031827, -77.246933],\n", - " 'Karlovy Vary, Czech Republic': [50.2306216, 12.8701437],\n", - " ', Canada': [61.0666922, -107.991707],\n", - " ', Afghanistan': [33.7680065, 66.2385139],\n", - " ', Portugal': [39.6621648, -8.1353519],\n", - " 'Chirac, France': [45.9140138, 0.6548543],\n", - " 'Allgäu, Germany': [47.5926009, 10.209156],\n", - " 'Ile de France, France': [48.6443057, 2.7537863],\n", - " 'French Basque Country, Midi-Pyrénées, France': [46.603354, 1.8883335],\n", - " 'St Antoine, France': [44.0361186, 0.8397552],\n", - " ', Spain': [39.3260685, -4.8379791],\n", - " 'Charentes, France': [45.4039367, 0.3756199],\n", - " 'Béarnaise in Pyrénées-Atlantique, France': [46.603354, 1.8883335],\n", - " 'Emilia-Romagna, Italy': [44.525696, 11.039437],\n", - " 'Kinfauns, Perthshire, Scotland': [56.3822607, -3.36565],\n", - " 'Bas-Languedoc, Comtat Venaissin, France': [43.687621, 4.2691037],\n", - " 'Piave Valley, Italy, Italy': [45.735099578237005, 7.320173335891282],\n", - " 'North East Victoria, Australia': [-37.8633951, 145.0100994],\n", - " 'Brittany, France': [48.2640845, -2.9202408],\n", - " 'Fethard, Co Tipperary, Ireland': [52.467222, -7.691111],\n", - " 'Castilla Leon, Spain': [40.4598868, -3.4720773],\n", - " 'Carneros, Sonoma, California, United States': [33.223027,\n", - " -111.70568456233669],\n", - " 'Loire Valley, France': [47.44927715, -0.34954901296919916],\n", - " 'Bermondsey, London, England': [51.4970125, -0.063268],\n", - " 'Bursa, Turkey': [39.9895878, 28.8944669],\n", - " 'Centre , the department of Loiret, France': [47.5490251, 1.7324062],\n", - " ', Argentina': [-34.9964963, -64.9672817],\n", - " 'Pays Basque, France': [47.6867895, 7.3927627],\n", - " 'Vermont, United States': [44.5990718, -72.5002608],\n", - " 'Carmarthenshire, Wales': [51.893669849999995, -4.217282721429928],\n", - " 'Island of Pag, Croatia': [45.3658443, 15.6575209],\n", - " 'Sebastopol, California, United States': [38.4021038, -122.824222],\n", - " 'Friuli-Venezia Giulia, Italy': [46.151042, 13.055904],\n", - " ', Turkey': [39.294076, 35.2316631],\n", - " 'Schoonrewoerd, Leerdam, Netherlands': [51.920458, 5.1156505],\n", - " 'Asturias, Spain': [43.3133868, -5.94192],\n", - " 'Ile-de-France/Champagne, France': [48.5499833, 7.7510775],\n", - " 'island wide, Cyprus': [34.9174159, 32.889902651331866],\n", - " 'Rhône-Alpes, France': [45.3175313, 5.721294352585611],\n", - " 'Aberdeenshire, Scotland': [57.166667, -2.666667],\n", - " 'Co. Cork, Ireland': [51.917535900000004, -8.58597726870895],\n", - " 'Oristano, Italy': [40.02656765, 8.679641647435716],\n", - " 'Zasavica, Serbia': [44.9454307, 19.4987239],\n", - " 'North Yorkshire, England': [54.13453275, -1.498628491239545],\n", - " ', Italy': [42.6384261, 12.674297],\n", - " 'Orkney Islands, Scotland': [58.94182309999999, -3.129694439563327],\n", - " 'Croisy-sur-Eure, France': [49.0291802, 1.346505],\n", - " 'Swaledale, North Yorkshire, England': [54.38299324007608,\n", - " -1.9841360652878535],\n", - " 'Canton of Glarus, Switzerland': [46.7985624, 8.2319736],\n", - " 'Pyrenees-Atlantiques, France': [43.18718655, -0.728247400084667],\n", - " 'Pyrénées, France': [48.8738565, 2.3852638],\n", - " 'Valencia, Spain': [39.4697065, -0.3763353],\n", - " 'East Sussex, United Kingdom': [50.9404266, 0.3699977891068864],\n", - " ', Serbia': [44.024322850000004, 21.07657433209902],\n", - " 'Oviken, Sweden': [62.9974877, 14.3928671],\n", - " 'Aquitaine, France': [44.24620635, -0.18399787392367906],\n", - " 'Dumfriesshire, Scotland': [55.166667, -3.5],\n", - " 'Huizen, Netherlands': [52.2958122, 5.2567209],\n", - " 'Leiden, Netherlands': [52.1594747, 4.4908843],\n", - " 'Gevrey-Chambertin, Burgundy, France': [47.2261857, 4.9705666],\n", - " 'Azores, Portugal': [37.80855645, -25.473137391245295],\n", - " 'Dumfries, Scotland': [55.0691397, -3.6107936],\n", - " 'Rhone Valley, France': [46.603354, 1.8883335],\n", - " 'Blarney, Ireland': [51.9325233, -8.5678665],\n", - " 'British Columbia, Canada': [55.001251, -125.002441],\n", - " 'Castile-Leon, Spain': [41.55005, -5.1387401],\n", - " 'Illoud (Haute-Marne), France': [48.2089823, 5.5615126],\n", - " 'Pienza, Italy': [43.0765485, 11.6789076],\n", - " 'Averyon, France': [46.603354, 1.8883335],\n", - " 'Banks Peninsular in Canterbury, New Zealand': [-41.5000831, 172.8344077],\n", - " 'Pyrénées-Atlantiques, France': [43.18718655, -0.728247400084667],\n", - " 'Hamilton, New Zealand': [-37.7878809, 175.281788],\n", - " 'New South Wales, Australia': [-31.8759835, 147.2869493],\n", - " 'Savoie, France': [45.494895150000005, 6.384660381375652],\n", - " 'Tomales, California, United States': [38.2468075, -122.90630461024097],\n", - " 'Wallonia, Belgium': [50.154540049999994, 5.399359762971196],\n", - " 'Aveyron, Laguiole, France': [44.315857449999996, 2.5065697302419823],\n", - " ', United States': [39.7837304, -100.445882],\n", - " 'Banon, France': [44.0381752, 5.6296701],\n", - " 'Emilia Romagna, Italy': [44.525696, 11.039437],\n", - " 'Wales, London, Wales': [52.41446365, -4.0685073132923],\n", - " 'New York, France': [44.8705067, -0.5504343],\n", - " 'Veneto, Italy': [45.6476663, 11.8665254],\n", - " 'Pays d’Auge, Normandy, France': [49.0356178, 0.1573083324015645],\n", - " 'Gâtinais, France': [48.15497515, 2.811419156673292],\n", - " 'Co Clare, Ireland': [52.857257450000006, -8.937435925994537],\n", - " 'Gravina in Puglia, Murgia, Italy': [40.819725, 16.422779],\n", - " 'Gippsland, Victoria, Australia': [-37.87448275, 146.9111788341666],\n", - " 'Monterey, California, United States': [36.2231079, -121.387742],\n", - " ', Germany': [51.1638175, 10.4478313],\n", - " ', Mongolia': [46.8250388, 103.8499736],\n", - " 'Serra da Canastra, Minas Gerais state, Brazil': [-20.1615,\n", - " -46.76365461658604],\n", - " 'Pinconning, Michigan, United States': [43.853633, -83.964987],\n", - " 'Co. Mayo, Ireland': [53.9087056, -9.298304863654256],\n", - " 'Västra Götaland, Sweden': [58.215850200000006, 12.651820794914073],\n", - " 'Somerset, England': [51.161750850000004, -3.0753867062227487],\n", - " 'Carrigtwohill, ': [51.9094617, -8.2611809],\n", - " 'Calabria, Italy': [39.0565974, 16.5249864],\n", - " 'Bavaria, Germany': [48.9467562, 11.4038717],\n", - " ', United Kingdom': [54.7023545, -3.2765753],\n", - " ', Poland': [52.215933, 19.134422],\n", - " 'Sulzberg, Austria': [47.52121792021591, 9.91273065974192],\n", - " ', Mauritania': [20.2540382, -9.2399263],\n", - " 'Piemonte, Italy': [45.060735, 7.923549],\n", - " 'Franche Comté, France': [48.68347355, 2.1776625116070027],\n", - " 'Beira Baixa Province, Portugal': [39.6621648, -8.1353519],\n", - " 'Valpadana, Italy': [39.60288591417616, 16.626802703803317],\n", - " 'Carrigtwohill, Ireland': [51.9094617, -8.2611809],\n", - " 'Maribo, Denmark': [54.7758018, 11.5054333],\n", - " 'South West England, United Kingdom': [51.0339991, -2.949011916021195],\n", - " 'Basque, Pyrenees Mountains, France': [45.359277750000004,\n", - " -1.1480053453043046],\n", - " 'Crotone, Italy': [39.1873894, 16.87828188895307],\n", - " 'Provence, France': [44.0580563, 6.0638506],\n", - " 'province of Brittany, France': [46.603354, 1.8883335],\n", - " 'Campania, Paestum, Foggia, Italy': [40.860672, 14.843984],\n", - " 'Shelburne Farms, United States': [34.89046225, -82.24340593189123],\n", - " 'Treviso, Veneto, Italy': [45.806691349999994, 12.206315763116372],\n", - " 'Missouri, United States': [38.7604815, -92.5617875],\n", - " 'Georgia, United States': [32.3293809, -83.1137366],\n", - " 'North East Victoria, ': [54.699881, -1.6031519],\n", - " 'Tasmania, Australia': [-42.035067, 146.6366887],\n", - " 'Amou, Gascony, France': [43.59266, -0.7475291],\n", - " 'Normandy, France': [49.0677708, 0.3138532],\n", - " 'County Carlow, Ireland': [52.69078865, -6.825145150844913],\n", - " 'Berry, France': [44.5760186, 0.3095833],\n", - " 'Inagh, Co Clare, Ireland': [52.9071704, -9.2345138],\n", - " 'Mols, Denmark': [56.187042, 10.460782482125193],\n", - " 'Odell, Bedfordshire, England': [52.21843025, -0.5921260787763352],\n", - " 'Pembrokeshire, Wales': [51.8339209, -4.916667],\n", - " 'Comox Valley, Vancouver Island, Canada': [49.670981, -125.0353253],\n", - " 'Provencale, France': [43.7899311033635, 7.524017533510311],\n", - " 'Milford, NJ, United States': [41.2222218, -73.0570603],\n", - " 'Carnia, Italy': [46.3738716, 13.1339829],\n", - " 'Northwest, United States': [34.3129464, -78.1611077],\n", - " 'Auvergne, France': [45.2968119, 4.6604809],\n", - " 'Friuli-Venezia Giulia and the Veneto, Italy': [42.6384261, 12.674297],\n", - " ', New Zealand': [-41.5000831, 172.8344077],\n", - " 'Adamstown, Co Wexford, Ireland': [53.3360017, -6.4692321],\n", - " 'Castille-Leon, Spain': [41.55005, -5.1387401],\n", - " 'Murazzano, Italy': [44.4746494, 8.0213361],\n", - " 'Massachusetts, United States': [42.3788774, -72.032366],\n", - " 'Haute-Savoie / Upper Savoy, France': [46.06904065, 6.344532137164],\n", - " ', Belgium': [50.6402809, 4.6667145],\n", - " 'Kent, United Kingdom': [51.20707485, 0.7210361813401444],\n", - " 'Landshut, Germany': [48.536217, 12.1516551],\n", - " 'Brisbane, Australia': [-27.4689682, 153.0234991],\n", - " 'Allgaeu Alps, Germany': [51.1638175, 10.4478313],\n", - " 'Aconcagua, Chile': [-33.030515957094444, -71.5177984276482],\n", - " 'Rio Grande do Sul, Brazil': [-29.8425284, -53.7680577],\n", - " 'Menorca, Balearic Islands, Spain': [39.949257200000005, 4.0499641751186415],\n", - " 'Isere, France': [45.28979315, 5.634382477386232],\n", - " 'Stoneyford, Ireland': [52.5362671, -7.2278963],\n", - " 'Loire, France': [45.75385355, 4.045473682551104],\n", - " 'Cotherstone, England': [54.570244, -1.9804176],\n", - " ', England': [52.5310214, -1.2649062],\n", - " 'Jura, Switzerland': [47.3566699, 7.1598893],\n", - " 'Charm, Ohio, United States': [40.5067308, -81.7848553],\n", - " 'Chelmarsh, Bridgnorth, Shropshire, England': [52.4875359, -2.4124407],\n", - " 'West Bengal, India': [22.9964948, 87.6855882],\n", - " 'County Antrim, Ireland': [54.864725500000006, -6.143637910742768],\n", - " ', France': [46.603354, 1.8883335],\n", - " 'Pennsylvania, United States': [40.9699889, -77.7278831],\n", - " 'Stonegate, East Sussex, England': [53.960910892985034, -1.0833748506182423],\n", - " 'Gujarat, India': [22.3850051, 71.745261],\n", - " ', Cyprus': [34.9174159, 32.889902651331866],\n", - " 'Vorarlberg, Austria': [47.25, 9.9166667],\n", - " 'Poitou-Charentes, France': [46.13244785, -0.15455354898441043],\n", - " 'Larzac, France': [44.74693, 1.0075],\n", - " 'Sonoma, California, United States': [38.5110803, -122.8473388],\n", - " 'Midi-Pyrénées, France': [43.8099068, 1.4344926056549236],\n", - " 'Corsica, France': [42.188089649999995, 9.068413771427695],\n", - " 'Coast of Oregon, United States': [39.7837304, -100.445882],\n", - " 'Kilmallock County Limerick, Ireland': [52.400645600000004,\n", - " -8.571161660434711],\n", - " 'Greenville, Indiana, United States': [34.851354, -82.3984882],\n", - " 'Romanian Carpathians, Romania': [46.4046483, 22.9894841933513],\n", - " 'Basilicata, Italy': [40.500571, 16.081953],\n", - " 'Lower Normandy, France': [48.953684499999994, -0.573365358805311],\n", - " 'Lapland, Finland': [67.69291045, 26.728214183162986],\n", - " 'Normandy, Auvilliers, France': [49.0677708, 0.3138532],\n", - " 'Languedoc-Roussillon, France': [43.65420305, 3.674669940206605],\n", - " 'Allagau, Bavarian Alps, Germany': [51.1638175, 10.4478313],\n", - " 'Buxton, Derbyshire, England': [53.2593422, -1.9100768],\n", - " 'Bornholm, Denmark': [55.143122399999996, 14.922629658767558],\n", - " 'Bloomdale, United States': [33.2473378, -96.6794382],\n", - " 'Cornwall, ': [50.416667, -4.75],\n", - " 'Barcelona, Spain': [41.3828939, 2.1774322],\n", - " 'Hunter Valley, Australia': [-32.5421803, 151.2185641],\n", - " 'North Carolina, United States': [35.6729639, -79.0392919],\n", - " 'Laqueuille, France': [45.6507627, 2.7320917],\n", - " 'Minnesota, United States': [45.9896587, -94.6113288],\n", - " 'Sardinia & Campania, Italy': [42.6384261, 12.674297],\n", - " 'South Australia, Australia': [-30.5343665, 135.6301212],\n", - " 'Central and Western Macedonia, Thessaly, Greece': [38.9953683, 21.9877132],\n", - " ', Ireland': [52.865196, -7.9794599],\n", - " 'NY, United States': [43.1561681, -75.8449946],\n", - " 'Bourgogne, France': [47.27808725, 4.222486304306048],\n", - " 'Virginia, United States': [37.1232245, -78.4927721],\n", - " 'Póvoa de Lanhoso, Portugal': [41.5759516, -8.2699521],\n", - " 'Colby, Wisconsin, United States': [44.5684775, -69.66002565150262],\n", - " 'Lanarkshire, Scotland': [55.5752966, -3.833333],\n", - " 'Herault, France': [43.591422, 3.3553309364095925],\n", - " ', Scotland': [56.7861112, -4.1140518],\n", - " 'Murcia, Spain': [37.9923795, -1.1305431],\n", - " 'La Velle, Wisconsin, United States': [45.1699553, -109.88428658948227],\n", - " 'Ann Arbor, MI, United States': [42.2813722, -83.7484616],\n", - " 'New Jersey, United States': [40.0757384, -74.4041622],\n", - " 'Duhallow, Ireland': [52.1837912, -9.00609563330653],\n", - " ', Iceland': [64.9841821, -18.1059013],\n", - " 'Iowa, United States': [41.9216734, -93.3122705],\n", - " 'Queenstown, New Zealand': [-45.0321923, 168.661],\n", - " 'Tain, Scotland': [57.8119372, -4.0550663],\n", - " 'Sardegna, Italy': [40.0912813, 9.0305773],\n", - " 'Nottinghamshire, England': [53.1459288, -1.0214971168122484],\n", - " 'Peekskill, United States': [41.289811, -73.9204922],\n", - " 'Fife, Scotland': [56.3333331, -3.0000001],\n", - " 'Umbria, Lazio, Italy': [42.965916, 12.490236],\n", - " 'Nord-Pas-de-Calais, France': [50.5289634, 2.454515765955904],\n", - " 'Victoria, Australia': [-36.5986096, 144.6780052],\n", - " 'Het Groene Hart, Netherlands': [51.5246, 4.280818038775446],\n", - " 'Inagh, Co Clare, ': [52.9071704, -9.2345138],\n", - " ', Holland': [52.2434979, 5.6343227]}" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "locations_to_gps = get_locations(\"locations_to_gps.json\")\n", - "locations_to_gps" - ] - }, - { - "cell_type": "code", - "execution_count": 17, + "execution_count": 11, "id": "204d1446-e58f-4585-8ac0-7466930e4291", "metadata": {}, "outputs": [], "source": [ + "locs=set(data[\"location\"])\n", + "locations_to_gps = get_locations(\"locations_to_gps.json\")\n", "latitudes, longitudes = [], []\n", "for i, value in enumerate(data.location):\n", " latitudes.append(locations_to_gps[value][0])\n", @@ -2604,371 +2158,3906 @@ }, { "cell_type": "code", - "execution_count": 18, - "id": "0e10c205-7492-489d-8404-da10c8a6a487", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " | cheese | \n", - "milk | \n", - "country | \n", - "region | \n", - "family | \n", - "type | \n", - "texture | \n", - "rind | \n", - "color | \n", - "flavor | \n", - "aroma | \n", - "vegetarian | \n", - "vegan | \n", - "location | \n", - "latitude | \n", - "longitude | \n", - "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", - "Aarewasser | \n", - "cow | \n", - "Switzerland | \n", - "\n", - " | NaN | \n", - "semi-soft | \n", - "buttery | \n", - "washed | \n", - "yellow | \n", - "sweet | \n", - "buttery | \n", - "False | \n", - "False | \n", - ", Switzerland | \n", - "46.798562 | \n", - "8.231974 | \n", - "
1 | \n", - "Abbaye de Belloc | \n", - "sheep | \n", - "France | \n", - "Pays Basque | \n", - "NaN | \n", - "semi-hard, artisan | \n", - "creamy, dense, firm | \n", - "natural | \n", - "yellow | \n", - "burnt caramel | \n", - "lanoline | \n", - "True | \n", - "False | \n", - "Pays Basque, France | \n", - "47.686790 | \n", - "7.392763 | \n", - "
2 | \n", - "Abbaye de Belval | \n", - "cow | \n", - "France | \n", - "\n", - " | NaN | \n", - "semi-hard | \n", - "elastic | \n", - "washed | \n", - "ivory | \n", - "NaN | \n", - "aromatic | \n", - "False | \n", - "False | \n", - ", France | \n", - "46.603354 | \n", - "1.888334 | \n", - "
3 | \n", - "Abbaye de Citeaux | \n", - "cow | \n", - "France | \n", - "Burgundy | \n", - "NaN | \n", - "semi-soft, artisan, brined | \n", - "creamy, dense, smooth | \n", - "washed | \n", - "white | \n", - "acidic, milky, smooth | \n", - "barnyardy, earthy | \n", - "False | \n", - "False | \n", - "Burgundy, France | \n", - "47.278087 | \n", - "4.222486 | \n", - "
4 | \n", - "Abbaye de Tamié | \n", - "cow | \n", - "France | \n", - "Savoie | \n", - "NaN | \n", - "soft, artisan | \n", - "creamy, open, smooth | \n", - "washed | \n", - "white | \n", - "fruity, nutty | \n", - "perfumed, pungent | \n", - "False | \n", - "False | \n", - "Savoie, France | \n", - "45.494895 | \n", - "6.384660 | \n", - "
... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "
1182 | \n", - "Sveciaost | \n", - "cow | \n", - "Sweden | \n", - "Low-laying regions | \n", - "NaN | \n", - "semi-hard, brined | \n", - "creamy, supple | \n", - "rindless | \n", - "pale yellow | \n", - "acidic | \n", - "NaN | \n", - "False | \n", - "False | \n", - "Low-laying regions, Sweden | \n", - "59.674971 | \n", - "14.520858 | \n", - "
1183 | \n", - "Swag | \n", - "goat | \n", - "Australia | \n", - "South Australia | \n", - "NaN | \n", - "fresh firm, artisan | \n", - "creamy, crumbly | \n", - "ash coated | \n", - "white | \n", - "acidic, creamy | \n", - "fresh | \n", - "True | \n", - "False | \n", - "South Australia, Australia | \n", - "-30.534367 | \n", - "135.630121 | \n", - "
1184 | \n", - "Swaledale | \n", - "sheep | \n", - "England | \n", - "Swaledale, North Yorkshire | \n", - "NaN | \n", - "hard | \n", - "semi firm | \n", - "NaN | \n", - "yellow | \n", - "smooth, sweet | \n", - "floral | \n", - "True | \n", - "False | \n", - "Swaledale, North Yorkshire, England | \n", - "54.382993 | \n", - "-1.984136 | \n", - "
1185 | \n", - "Sweet Style Swiss | \n", - "NaN | \n", - "Switzerland | \n", - "\n", - " | NaN | \n", - "semi-hard, artisan | \n", - "firm, supple | \n", - "waxed | \n", - "NaN | \n", - "nutty | \n", - "nutty, sweet | \n", - "False | \n", - "False | \n", - ", Switzerland | \n", - "46.798562 | \n", - "8.231974 | \n", - "
1186 | \n", - "Swiss cheese | \n", - "cow | \n", - "United States | \n", - "\n", - " | Swiss Cheese | \n", - "hard, artisan, processed | \n", - "firm | \n", - "rindless | \n", - "pale yellow | \n", - "nutty, sweet | \n", - "NaN | \n", - "True | \n", - "False | \n", - ", United States | \n", - "39.783730 | \n", - "-100.445882 | \n", - "
1140 rows × 16 columns
\n", - "