{ "cells": [ { "cell_type": "markdown", "metadata": { "dc": { "key": "3" }, "deletable": false, "editable": false, "run_control": { "frozen": true }, "tags": [ "context" ] }, "source": [ "## # Introduction\n", "

\"A

\n", "

Let's look at Lego sets!

\n", "

Lego is a household name across the world, supported by a diverse toy line, hit movies, and a series of successful video games. In this project, we are going to explore a key development in the history of Lego: the introduction of licensed sets such as Star Wars, Super Heroes, and Harry Potter.

\n", "

It may not be widely known, but Lego has had its share of ups and downs since its inception in the early 20th century. This includes a particularly rough period in the late 90s. As described in this article, Lego was only able to survive due to a successful internal brand (Bionicle) and the introduction of its first licensed series: Star Wars. In the instructions panel are the two questions you will need to answer to complete this project.

\n", "

Before diving into our analysis though, let's become familiar with the two datasets that will help you with this project:

\n", "
\n", "
datasets/lego_sets.csv
\n", "\n", "\n", "
datasets/parent_themes.csv
\n", "\n", "
\n", "

From here on out, it will be your task to explore and manipulate the existing data until you are able to answer the two questions described in the instructions panel. Feel free to add as many cells as necessary. Finally, remember that you are only tested on your answer, not on the methods you use to arrive at the answer!

\n", "

Note: If you haven't completed a DataCamp project before you should check out the Intro to Projects first to learn about the interface. In this project, you also need to know your way around pandas DataFrames and it's recommended that you take a look at the course Data Manipulation with pandas.

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Importing Libraries" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "dc": { "key": "3" }, "tags": [ "sample_code" ] }, "outputs": [], "source": [ "# Use this cell to begin your analyses, and add as many cells as you would like!\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Load Datasets" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('~/Projects/Data Explorartion/Lego Analysis/lego_sets.csv')\n", "theme = pd.read_csv('~/Projects/Data Explorartion/Lego Analysis/parent_themes.csv')" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
set_numnameyearnum_partstheme_nameparent_theme
000-1Weetabix Castle1970471.0CastleLegoland
10011-2Town Mini-Figures1978NaNSupplementalTown
20011-3Castle 2 for 1 Bonus Offer1987NaNLion KnightsCastle
30012-1Space Mini-Figures197912.0SupplementalSpace
40013-1Space Mini-Figures197912.0SupplementalSpace
\n", "
" ], "text/plain": [ " set_num name year num_parts theme_name \\\n", "0 00-1 Weetabix Castle 1970 471.0 Castle \n", "1 0011-2 Town Mini-Figures 1978 NaN Supplemental \n", "2 0011-3 Castle 2 for 1 Bonus Offer 1987 NaN Lion Knights \n", "3 0012-1 Space Mini-Figures 1979 12.0 Supplemental \n", "4 0013-1 Space Mini-Figures 1979 12.0 Supplemental \n", "\n", " parent_theme \n", "0 Legoland \n", "1 Town \n", "2 Castle \n", "3 Space \n", "4 Space " ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idnameis_licensed
01TechnicFalse
122CreatorFalse
250TownFalse
3112RacersFalse
4126SpaceFalse
\n", "
" ], "text/plain": [ " id name is_licensed\n", "0 1 Technic False\n", "1 22 Creator False\n", "2 50 Town False\n", "3 112 Racers False\n", "4 126 Space False" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "theme.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Explorartory Data Analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Task 1. What percentage of all licensed sets over released were Star Wars themed?" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "set_num 153\n", "name 153\n", "year 0\n", "num_parts 5060\n", "theme_name 153\n", "parent_theme 0\n", "dtype: int64" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "df_na = df.dropna(subset=['set_num'])" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
set_numname_xyearnum_partstheme_nameparent_themeidname_yis_licensed
000-1Weetabix Castle1970471.0CastleLegoland411LegolandFalse
10011-2Town Mini-Figures1978NaNSupplementalTown50TownFalse
20011-3Castle 2 for 1 Bonus Offer1987NaNLion KnightsCastle186CastleFalse
30012-1Space Mini-Figures197912.0SupplementalSpace126SpaceFalse
40013-1Space Mini-Figures197912.0SupplementalSpace126SpaceFalse
\n", "
" ], "text/plain": [ " set_num name_x year num_parts theme_name \\\n", "0 00-1 Weetabix Castle 1970 471.0 Castle \n", "1 0011-2 Town Mini-Figures 1978 NaN Supplemental \n", "2 0011-3 Castle 2 for 1 Bonus Offer 1987 NaN Lion Knights \n", "3 0012-1 Space Mini-Figures 1979 12.0 Supplemental \n", "4 0013-1 Space Mini-Figures 1979 12.0 Supplemental \n", "\n", " parent_theme id name_y is_licensed \n", "0 Legoland 411 Legoland False \n", "1 Town 50 Town False \n", "2 Castle 186 Castle False \n", "3 Space 126 Space False \n", "4 Space 126 Space False " ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfm = df_na.merge(theme, left_on='parent_theme', right_on='name')\n", "dfm.head()" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 11833 entries, 0 to 11832\n", "Data columns (total 9 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 set_num 11833 non-null object \n", " 1 name_x 11833 non-null object \n", " 2 year 11833 non-null int64 \n", " 3 num_parts 6835 non-null float64\n", " 4 theme_name 11833 non-null object \n", " 5 parent_theme 11833 non-null object \n", " 6 id 11833 non-null int64 \n", " 7 name_y 11833 non-null object \n", " 8 is_licensed 11833 non-null bool \n", "dtypes: bool(1), float64(1), int64(2), object(5)\n", "memory usage: 751.2+ KB\n" ] } ], "source": [ "dfm.info()" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
set_numname_xyearnum_partstheme_nameparent_themeidis_licensed
000-1Weetabix Castle1970471.0CastleLegoland411False
10011-2Town Mini-Figures1978NaNSupplementalTown50False
20011-3Castle 2 for 1 Bonus Offer1987NaNLion KnightsCastle186False
30012-1Space Mini-Figures197912.0SupplementalSpace126False
40013-1Space Mini-Figures197912.0SupplementalSpace126False
\n", "
" ], "text/plain": [ " set_num name_x year num_parts theme_name \\\n", "0 00-1 Weetabix Castle 1970 471.0 Castle \n", "1 0011-2 Town Mini-Figures 1978 NaN Supplemental \n", "2 0011-3 Castle 2 for 1 Bonus Offer 1987 NaN Lion Knights \n", "3 0012-1 Space Mini-Figures 1979 12.0 Supplemental \n", "4 0013-1 Space Mini-Figures 1979 12.0 Supplemental \n", "\n", " parent_theme id is_licensed \n", "0 Legoland 411 False \n", "1 Town 50 False \n", "2 Castle 186 False \n", "3 Space 126 False \n", "4 Space 126 False " ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfm.drop(columns='name_y', inplace=True)\n", "dfm.head()" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
set_numname_xyearnum_partstheme_nameparent_themeidis_licensed
4410018-1Darth Maul20011868.0Star WarsStar Wars158True
4510019-1Rebel Blockade Runner - UCS2001NaNStar Wars Episode 4/5/6Star Wars158True
5410026-1Naboo Starfighter - UCS2002NaNStar Wars Episode 1Star Wars158True
5710030-1Imperial Star Destroyer - UCS20023115.0Star Wars Episode 4/5/6Star Wars158True
9510075-1Spider-Man Action Pack200225.0Spider-ManSuper Heroes482True
\n", "
" ], "text/plain": [ " set_num name_x year num_parts \\\n", "44 10018-1 Darth Maul 2001 1868.0 \n", "45 10019-1 Rebel Blockade Runner - UCS 2001 NaN \n", "54 10026-1 Naboo Starfighter - UCS 2002 NaN \n", "57 10030-1 Imperial Star Destroyer - UCS 2002 3115.0 \n", "95 10075-1 Spider-Man Action Pack 2002 25.0 \n", "\n", " theme_name parent_theme id is_licensed \n", "44 Star Wars Star Wars 158 True \n", "45 Star Wars Episode 4/5/6 Star Wars 158 True \n", "54 Star Wars Episode 1 Star Wars 158 True \n", "57 Star Wars Episode 4/5/6 Star Wars 158 True \n", "95 Spider-Man Super Heroes 482 True " ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "licensed = dfm[dfm['is_licensed']]\n", "licensed.head()" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
set_numname_xyearnum_partstheme_nameparent_themeidis_licensed
4410018-1Darth Maul20011868.0Star WarsStar Wars158True
4510019-1Rebel Blockade Runner - UCS2001NaNStar Wars Episode 4/5/6Star Wars158True
5410026-1Naboo Starfighter - UCS2002NaNStar Wars Episode 1Star Wars158True
5710030-1Imperial Star Destroyer - UCS20023115.0Star Wars Episode 4/5/6Star Wars158True
11610123-1Cloud City2003707.0Star Wars Episode 4/5/6Star Wars158True
\n", "
" ], "text/plain": [ " set_num name_x year num_parts \\\n", "44 10018-1 Darth Maul 2001 1868.0 \n", "45 10019-1 Rebel Blockade Runner - UCS 2001 NaN \n", "54 10026-1 Naboo Starfighter - UCS 2002 NaN \n", "57 10030-1 Imperial Star Destroyer - UCS 2002 3115.0 \n", "116 10123-1 Cloud City 2003 707.0 \n", "\n", " theme_name parent_theme id is_licensed \n", "44 Star Wars Star Wars 158 True \n", "45 Star Wars Episode 4/5/6 Star Wars 158 True \n", "54 Star Wars Episode 1 Star Wars 158 True \n", "57 Star Wars Episode 4/5/6 Star Wars 158 True \n", "116 Star Wars Episode 4/5/6 Star Wars 158 True " ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "star_wars = licensed[licensed['parent_theme']=='Star Wars']\n", "star_wars.head()" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(609, 8)" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "star_wars.shape" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "51" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "the_force = int(star_wars.shape[0]/licensed.shape[0]*100)\n", "the_force" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Task 1. Answer: 51%\n" ] } ], "source": [ "print(f'Task 1. Answer: {the_force}%')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Task 2. In which year was Star Wars not the most popular licensed theme (in terms of number of sets released that year)?" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
set_numname_xyearnum_partstheme_nameparent_themeidis_licensed
4410018-1Darth Maul20011868.0Star WarsStar Wars158True
4510019-1Rebel Blockade Runner - UCS2001NaNStar Wars Episode 4/5/6Star Wars158True
5410026-1Naboo Starfighter - UCS2002NaNStar Wars Episode 1Star Wars158True
5710030-1Imperial Star Destroyer - UCS20023115.0Star Wars Episode 4/5/6Star Wars158True
9510075-1Spider-Man Action Pack200225.0Spider-ManSuper Heroes482True
\n", "
" ], "text/plain": [ " set_num name_x year num_parts \\\n", "44 10018-1 Darth Maul 2001 1868.0 \n", "45 10019-1 Rebel Blockade Runner - UCS 2001 NaN \n", "54 10026-1 Naboo Starfighter - UCS 2002 NaN \n", "57 10030-1 Imperial Star Destroyer - UCS 2002 3115.0 \n", "95 10075-1 Spider-Man Action Pack 2002 25.0 \n", "\n", " theme_name parent_theme id is_licensed \n", "44 Star Wars Star Wars 158 True \n", "45 Star Wars Episode 4/5/6 Star Wars 158 True \n", "54 Star Wars Episode 1 Star Wars 158 True \n", "57 Star Wars Episode 4/5/6 Star Wars 158 True \n", "95 Spider-Man Super Heroes 482 True " ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "licensed.head()" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
set_numname_xyearnum_partstheme_nameparent_themeidis_licensedcount
78377141-1Naboo Fighter1999179.0Star Wars Episode 1Star Wars158True1
78457150-1TIE Fighter & Y-wing1999NaNStar Wars Episode 4/5/6Star Wars158True1
78477151-1Sith Infiltrator1999244.0Star Wars Episode 1Star Wars158True1
78157131-1Anakin's Podracer1999136.0Star Wars Episode 1Star Wars158True1
78567161-1Gungan Sub1999379.0Star Wars Episode 1Star Wars158True1
\n", "
" ], "text/plain": [ " set_num name_x year num_parts theme_name \\\n", "7837 7141-1 Naboo Fighter 1999 179.0 Star Wars Episode 1 \n", "7845 7150-1 TIE Fighter & Y-wing 1999 NaN Star Wars Episode 4/5/6 \n", "7847 7151-1 Sith Infiltrator 1999 244.0 Star Wars Episode 1 \n", "7815 7131-1 Anakin's Podracer 1999 136.0 Star Wars Episode 1 \n", "7856 7161-1 Gungan Sub 1999 379.0 Star Wars Episode 1 \n", "\n", " parent_theme id is_licensed count \n", "7837 Star Wars 158 True 1 \n", "7845 Star Wars 158 True 1 \n", "7847 Star Wars 158 True 1 \n", "7815 Star Wars 158 True 1 \n", "7856 Star Wars 158 True 1 " ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "licensed_sorted = licensed.sort_values('year')\n", "licensed_sorted['count'] = 1\n", "licensed_sorted.head()" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
set_numname_xnum_partstheme_nameidis_licensedcount
yearparent_theme
1999Star Wars7141-17150-17151-17131-17161-17130-17171-17128...Naboo FighterTIE Fighter & Y-wingSith Infiltra...1384.0Star Wars Episode 1Star Wars Episode 4/5/6Star...20541313
2000Disney's Mickey Mouse4178-14167-14166-14165-14164-1Mickey's Fishing AdventureMickey's MansionMick...405.0Disney's Mickey MouseDisney's Mickey MouseDisn...194055
Star Wars7134-13341-1VP-87104-14151270-13343-13342-1712...A-wing FighterStar Wars #2 - Luke/Han/Boba Min...2580.0Star Wars Episode 4/5/6Star Wars Episode 4/5/6...41082626
2001Harry Potter4702-14701-14704-14705-14722-14707-14708-14709...The Final ChallengeSorting HatThe Chamber of t...1284.0Sorcerer's StoneSorcerer's StoneSorcerer's Sto...27061111
Star Wars7146-18008-1VP-28007-165028-165030-165034-1710...TIE FighterStormtrooper™Star Wars Co-Pack of 7...2949.0Star Wars Episode 4/5/6Star WarsStar Wars Epis...22121414
\n", "
" ], "text/plain": [ " set_num \\\n", "year parent_theme \n", "1999 Star Wars 7141-17150-17151-17131-17161-17130-17171-17128... \n", "2000 Disney's Mickey Mouse 4178-14167-14166-14165-14164-1 \n", " Star Wars 7134-13341-1VP-87104-14151270-13343-13342-1712... \n", "2001 Harry Potter 4702-14701-14704-14705-14722-14707-14708-14709... \n", " Star Wars 7146-18008-1VP-28007-165028-165030-165034-1710... \n", "\n", " name_x \\\n", "year parent_theme \n", "1999 Star Wars Naboo FighterTIE Fighter & Y-wingSith Infiltra... \n", "2000 Disney's Mickey Mouse Mickey's Fishing AdventureMickey's MansionMick... \n", " Star Wars A-wing FighterStar Wars #2 - Luke/Han/Boba Min... \n", "2001 Harry Potter The Final ChallengeSorting HatThe Chamber of t... \n", " Star Wars TIE FighterStormtrooper™Star Wars Co-Pack of 7... \n", "\n", " num_parts \\\n", "year parent_theme \n", "1999 Star Wars 1384.0 \n", "2000 Disney's Mickey Mouse 405.0 \n", " Star Wars 2580.0 \n", "2001 Harry Potter 1284.0 \n", " Star Wars 2949.0 \n", "\n", " theme_name \\\n", "year parent_theme \n", "1999 Star Wars Star Wars Episode 1Star Wars Episode 4/5/6Star... \n", "2000 Disney's Mickey Mouse Disney's Mickey MouseDisney's Mickey MouseDisn... \n", " Star Wars Star Wars Episode 4/5/6Star Wars Episode 4/5/6... \n", "2001 Harry Potter Sorcerer's StoneSorcerer's StoneSorcerer's Sto... \n", " Star Wars Star Wars Episode 4/5/6Star WarsStar Wars Epis... \n", "\n", " id is_licensed count \n", "year parent_theme \n", "1999 Star Wars 2054 13 13 \n", "2000 Disney's Mickey Mouse 1940 5 5 \n", " Star Wars 4108 26 26 \n", "2001 Harry Potter 2706 11 11 \n", " Star Wars 2212 14 14 " ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summed_df = licensed_sorted.groupby(by=['year','parent_theme']).sum()\n", "summed_df.head()" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearparent_themeset_numname_xnum_partstheme_nameidis_licensedcount
01999Star Wars7141-17150-17151-17131-17161-17130-17171-17128...Naboo FighterTIE Fighter & Y-wingSith Infiltra...1384.0Star Wars Episode 1Star Wars Episode 4/5/6Star...20541313
12000Disney's Mickey Mouse4178-14167-14166-14165-14164-1Mickey's Fishing AdventureMickey's MansionMick...405.0Disney's Mickey MouseDisney's Mickey MouseDisn...194055
22000Star Wars7134-13341-1VP-87104-14151270-13343-13342-1712...A-wing FighterStar Wars #2 - Luke/Han/Boba Min...2580.0Star Wars Episode 4/5/6Star Wars Episode 4/5/6...41082626
32001Harry Potter4702-14701-14704-14705-14722-14707-14708-14709...The Final ChallengeSorting HatThe Chamber of t...1284.0Sorcerer's StoneSorcerer's StoneSorcerer's Sto...27061111
42001Star Wars7146-18008-1VP-28007-165028-165030-165034-1710...TIE FighterStormtrooper™Star Wars Co-Pack of 7...2949.0Star Wars Episode 4/5/6Star WarsStar Wars Epis...22121414
\n", "
" ], "text/plain": [ " year parent_theme \\\n", "0 1999 Star Wars \n", "1 2000 Disney's Mickey Mouse \n", "2 2000 Star Wars \n", "3 2001 Harry Potter \n", "4 2001 Star Wars \n", "\n", " set_num \\\n", "0 7141-17150-17151-17131-17161-17130-17171-17128... \n", "1 4178-14167-14166-14165-14164-1 \n", "2 7134-13341-1VP-87104-14151270-13343-13342-1712... \n", "3 4702-14701-14704-14705-14722-14707-14708-14709... \n", "4 7146-18008-1VP-28007-165028-165030-165034-1710... \n", "\n", " name_x num_parts \\\n", "0 Naboo FighterTIE Fighter & Y-wingSith Infiltra... 1384.0 \n", "1 Mickey's Fishing AdventureMickey's MansionMick... 405.0 \n", "2 A-wing FighterStar Wars #2 - Luke/Han/Boba Min... 2580.0 \n", "3 The Final ChallengeSorting HatThe Chamber of t... 1284.0 \n", "4 TIE FighterStormtrooper™Star Wars Co-Pack of 7... 2949.0 \n", "\n", " theme_name id is_licensed count \n", "0 Star Wars Episode 1Star Wars Episode 4/5/6Star... 2054 13 13 \n", "1 Disney's Mickey MouseDisney's Mickey MouseDisn... 1940 5 5 \n", "2 Star Wars Episode 4/5/6Star Wars Episode 4/5/6... 4108 26 26 \n", "3 Sorcerer's StoneSorcerer's StoneSorcerer's Sto... 2706 11 11 \n", "4 Star Wars Episode 4/5/6Star WarsStar Wars Epis... 2212 14 14 " ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summed_df = summed_df.reset_index()\n", "summed_df.head()" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearparent_themeset_numname_xnum_partstheme_nameidis_licensedcount
01999Star Wars7141-17150-17151-17131-17161-17130-17171-17128...Naboo FighterTIE Fighter & Y-wingSith Infiltra...1384.0Star Wars Episode 1Star Wars Episode 4/5/6Star...20541313
22000Star Wars7134-13341-1VP-87104-14151270-13343-13342-1712...A-wing FighterStar Wars #2 - Luke/Han/Boba Min...2580.0Star Wars Episode 4/5/6Star Wars Episode 4/5/6...41082626
42001Star Wars7146-18008-1VP-28007-165028-165030-165034-1710...TIE FighterStormtrooper™Star Wars Co-Pack of 7...2949.0Star Wars Episode 4/5/6Star WarsStar Wars Epis...22121414
62002Star Wars4195641-1K7153-1K7204-1K720x-18009-18010-18011...Star Wars Co-Pack of 7142 and 7152Episode II U...4735.0Star Wars Episode 4/5/6Star Wars Episode 2Star...44242828
92003Star Wars4481-14480-14479-14478-14476-14475-14207901-14...Hailfire DroidJabba's PalaceTIE BomberGeonosia...6660.0Star WarsStar Wars Episode 4/5/6Star Wars Epis...50563232
122004Star Wars4501-2K10131-14502-24500-210134-14483-24495-14...Mos Eisley Cantina, Original Trilogy Edition b...1659.0Star Wars Episode 4/5/6Star Wars Episode 4/5/6...31602020
162005Star WarsK7283-16966-165771-16966-26965-265845-165844-1...V-wing Space Battle CollectionJedi Starfighter...4730.0Star Wars Episode 3MiniStar Wars Episode 3Mini...44242828
202006Star Wars7261-210175-110174-16205-16206-16207-16208-162...Clone Turbo Tank (with Non-Light-Up Mace Windu...2769.0Star Wars Episode 3Star Wars Episode 4/5/6Star...17381111
242007Star Wars66221-17664-110179-110178-17665-17662-17654-17...X-wing Fighter and Luke Pilot Maquette Co-Pack...11361.0Star Wars Episode 4/5/6Star Wars OtherStar War...25281616
282008Star Wars20006-110186-18031-18029-18028-17668-17667-110...Clone Turbo Tank - MiniGeneral GrievousV-19 To...6865.0Star Wars Episode 3Star Wars Episode 3Star War...36342323
322009Star Wars8016-18018-18019-166308-17752-17751-17749-1803...Hyena Droid BomberArmored Assault Tank (AAT)Re...3953.0Star Wars Clone WarsStar Wars Clone WarsStar W...61623939
362010Star Wars8095-18097-18089-18096-18099-18129-18091-18093...General Grievous’ StarfighterSlave I (Third Ed...6003.0Star Wars Clone WarsStar Wars Episode 4/5/6Sta...47403030
422011Star Wars7929-17965-130053-17879-130054-17931-130052-17...The Battle of NabooMillennium FalconRepublic A...3451.0Star Wars Episode 1Star Wars Episode 4/5/6Star...50563232
472012Star Warscelebvi-110227-166431-166432-19679-19678-19677...Boba Fett’s Slave I - Mini - Star Wars Celebra...6769.0Star Wars Episode 4/5/6Star Wars Episode 4/5/6...67944343
522013Star Warscomcon032-1MAY2013-110236-110240-175000-175010...JEK-14 Mini Stealth Starfighter - San Diego Co...6159.0Star WarsStar WarsStar Wars Episode 4/5/6Star ...55303535
592014Star WarsTRUXWINGTIE-130244-130246-130247-1TRUTIE-1TRUG...TRU X-Wing Fighter & TIE Fighter (May 3, 2014)...8293.0Star Wars OtherMiniStar WarsStar WarsStar Wars...71104545
672015Star WarsSDCC2015-2SW911506-1SW911508-1SW911509-1SW9115...Dagobah Mini-BuildSnowspeederMini Slave 1Imper...11410.0Star WarsStar Wars Episode 4/5/6MiniStar Wars ...91645858
762016Star Wars75130-175131-175129-175126-175114-175115-17511...AT-DPResistance Trooper Battle PackWookiee Gun...6934.0Star Wars RebelsStar Wars Episode 7Star Wars R...96386161
822017Super Heroes5004930-15004929-1211701-141234-141233-170900-...Accessory packBatman Battle PodBatmanBumblebee...13123.0BatmanBatmanBatmanSuper HeroesSuper HeroesBatm...347047272
\n", "
" ], "text/plain": [ " year parent_theme set_num \\\n", "0 1999 Star Wars 7141-17150-17151-17131-17161-17130-17171-17128... \n", "2 2000 Star Wars 7134-13341-1VP-87104-14151270-13343-13342-1712... \n", "4 2001 Star Wars 7146-18008-1VP-28007-165028-165030-165034-1710... \n", "6 2002 Star Wars 4195641-1K7153-1K7204-1K720x-18009-18010-18011... \n", "9 2003 Star Wars 4481-14480-14479-14478-14476-14475-14207901-14... \n", "12 2004 Star Wars 4501-2K10131-14502-24500-210134-14483-24495-14... \n", "16 2005 Star Wars K7283-16966-165771-16966-26965-265845-165844-1... \n", "20 2006 Star Wars 7261-210175-110174-16205-16206-16207-16208-162... \n", "24 2007 Star Wars 66221-17664-110179-110178-17665-17662-17654-17... \n", "28 2008 Star Wars 20006-110186-18031-18029-18028-17668-17667-110... \n", "32 2009 Star Wars 8016-18018-18019-166308-17752-17751-17749-1803... \n", "36 2010 Star Wars 8095-18097-18089-18096-18099-18129-18091-18093... \n", "42 2011 Star Wars 7929-17965-130053-17879-130054-17931-130052-17... \n", "47 2012 Star Wars celebvi-110227-166431-166432-19679-19678-19677... \n", "52 2013 Star Wars comcon032-1MAY2013-110236-110240-175000-175010... \n", "59 2014 Star Wars TRUXWINGTIE-130244-130246-130247-1TRUTIE-1TRUG... \n", "67 2015 Star Wars SDCC2015-2SW911506-1SW911508-1SW911509-1SW9115... \n", "76 2016 Star Wars 75130-175131-175129-175126-175114-175115-17511... \n", "82 2017 Super Heroes 5004930-15004929-1211701-141234-141233-170900-... \n", "\n", " name_x num_parts \\\n", "0 Naboo FighterTIE Fighter & Y-wingSith Infiltra... 1384.0 \n", "2 A-wing FighterStar Wars #2 - Luke/Han/Boba Min... 2580.0 \n", "4 TIE FighterStormtrooper™Star Wars Co-Pack of 7... 2949.0 \n", "6 Star Wars Co-Pack of 7142 and 7152Episode II U... 4735.0 \n", "9 Hailfire DroidJabba's PalaceTIE BomberGeonosia... 6660.0 \n", "12 Mos Eisley Cantina, Original Trilogy Edition b... 1659.0 \n", "16 V-wing Space Battle CollectionJedi Starfighter... 4730.0 \n", "20 Clone Turbo Tank (with Non-Light-Up Mace Windu... 2769.0 \n", "24 X-wing Fighter and Luke Pilot Maquette Co-Pack... 11361.0 \n", "28 Clone Turbo Tank - MiniGeneral GrievousV-19 To... 6865.0 \n", "32 Hyena Droid BomberArmored Assault Tank (AAT)Re... 3953.0 \n", "36 General Grievous’ StarfighterSlave I (Third Ed... 6003.0 \n", "42 The Battle of NabooMillennium FalconRepublic A... 3451.0 \n", "47 Boba Fett’s Slave I - Mini - Star Wars Celebra... 6769.0 \n", "52 JEK-14 Mini Stealth Starfighter - San Diego Co... 6159.0 \n", "59 TRU X-Wing Fighter & TIE Fighter (May 3, 2014)... 8293.0 \n", "67 Dagobah Mini-BuildSnowspeederMini Slave 1Imper... 11410.0 \n", "76 AT-DPResistance Trooper Battle PackWookiee Gun... 6934.0 \n", "82 Accessory packBatman Battle PodBatmanBumblebee... 13123.0 \n", "\n", " theme_name id is_licensed \\\n", "0 Star Wars Episode 1Star Wars Episode 4/5/6Star... 2054 13 \n", "2 Star Wars Episode 4/5/6Star Wars Episode 4/5/6... 4108 26 \n", "4 Star Wars Episode 4/5/6Star WarsStar Wars Epis... 2212 14 \n", "6 Star Wars Episode 4/5/6Star Wars Episode 2Star... 4424 28 \n", "9 Star WarsStar Wars Episode 4/5/6Star Wars Epis... 5056 32 \n", "12 Star Wars Episode 4/5/6Star Wars Episode 4/5/6... 3160 20 \n", "16 Star Wars Episode 3MiniStar Wars Episode 3Mini... 4424 28 \n", "20 Star Wars Episode 3Star Wars Episode 4/5/6Star... 1738 11 \n", "24 Star Wars Episode 4/5/6Star Wars OtherStar War... 2528 16 \n", "28 Star Wars Episode 3Star Wars Episode 3Star War... 3634 23 \n", "32 Star Wars Clone WarsStar Wars Clone WarsStar W... 6162 39 \n", "36 Star Wars Clone WarsStar Wars Episode 4/5/6Sta... 4740 30 \n", "42 Star Wars Episode 1Star Wars Episode 4/5/6Star... 5056 32 \n", "47 Star Wars Episode 4/5/6Star Wars Episode 4/5/6... 6794 43 \n", "52 Star WarsStar WarsStar Wars Episode 4/5/6Star ... 5530 35 \n", "59 Star Wars OtherMiniStar WarsStar WarsStar Wars... 7110 45 \n", "67 Star WarsStar Wars Episode 4/5/6MiniStar Wars ... 9164 58 \n", "76 Star Wars RebelsStar Wars Episode 7Star Wars R... 9638 61 \n", "82 BatmanBatmanBatmanSuper HeroesSuper HeroesBatm... 34704 72 \n", "\n", " count \n", "0 13 \n", "2 26 \n", "4 14 \n", "6 28 \n", "9 32 \n", "12 20 \n", "16 28 \n", "20 11 \n", "24 16 \n", "28 23 \n", "32 39 \n", "36 30 \n", "42 32 \n", "47 43 \n", "52 35 \n", "59 45 \n", "67 58 \n", "76 61 \n", "82 72 " ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max_df = summed_df.sort_values(by='count',ascending=False).drop_duplicates(['year'])\n", "max_df.sort_values('year', inplace=True)\n", "max_df" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [], "source": [ "new_era=2017" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Task 2. Answer: 2017\n" ] } ], "source": [ "print(f'Task 2. Answer: {new_era}')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 4 }