Created
October 20, 2021 21:20
-
-
Save rolangom/d8d2464bbed67d034230f18ecf3bfad1 to your computer and use it in GitHub Desktop.
video game sales analysis
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Rank</th>\n", | |
" <th>Name</th>\n", | |
" <th>Platform</th>\n", | |
" <th>Year</th>\n", | |
" <th>Genre</th>\n", | |
" <th>Publisher</th>\n", | |
" <th>NA_Sales</th>\n", | |
" <th>EU_Sales</th>\n", | |
" <th>JP_Sales</th>\n", | |
" <th>Other_Sales</th>\n", | |
" <th>Global_Sales</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1</td>\n", | |
" <td>Wii Sports</td>\n", | |
" <td>Wii</td>\n", | |
" <td>2006.0</td>\n", | |
" <td>Sports</td>\n", | |
" <td>Nintendo</td>\n", | |
" <td>41.49</td>\n", | |
" <td>29.02</td>\n", | |
" <td>3.77</td>\n", | |
" <td>8.46</td>\n", | |
" <td>82.74</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2</td>\n", | |
" <td>Super Mario Bros.</td>\n", | |
" <td>NES</td>\n", | |
" <td>1985.0</td>\n", | |
" <td>Platform</td>\n", | |
" <td>Nintendo</td>\n", | |
" <td>29.08</td>\n", | |
" <td>3.58</td>\n", | |
" <td>6.81</td>\n", | |
" <td>0.77</td>\n", | |
" <td>40.24</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>3</td>\n", | |
" <td>Mario Kart Wii</td>\n", | |
" <td>Wii</td>\n", | |
" <td>2008.0</td>\n", | |
" <td>Racing</td>\n", | |
" <td>Nintendo</td>\n", | |
" <td>15.85</td>\n", | |
" <td>12.88</td>\n", | |
" <td>3.79</td>\n", | |
" <td>3.31</td>\n", | |
" <td>35.82</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>4</td>\n", | |
" <td>Wii Sports Resort</td>\n", | |
" <td>Wii</td>\n", | |
" <td>2009.0</td>\n", | |
" <td>Sports</td>\n", | |
" <td>Nintendo</td>\n", | |
" <td>15.75</td>\n", | |
" <td>11.01</td>\n", | |
" <td>3.28</td>\n", | |
" <td>2.96</td>\n", | |
" <td>33.00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>5</td>\n", | |
" <td>Pokemon Red/Pokemon Blue</td>\n", | |
" <td>GB</td>\n", | |
" <td>1996.0</td>\n", | |
" <td>Role-Playing</td>\n", | |
" <td>Nintendo</td>\n", | |
" <td>11.27</td>\n", | |
" <td>8.89</td>\n", | |
" <td>10.22</td>\n", | |
" <td>1.00</td>\n", | |
" <td>31.37</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16593</th>\n", | |
" <td>16596</td>\n", | |
" <td>Woody Woodpecker in Crazy Castle 5</td>\n", | |
" <td>GBA</td>\n", | |
" <td>2002.0</td>\n", | |
" <td>Platform</td>\n", | |
" <td>Kemco</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16594</th>\n", | |
" <td>16597</td>\n", | |
" <td>Men in Black II: Alien Escape</td>\n", | |
" <td>GC</td>\n", | |
" <td>2003.0</td>\n", | |
" <td>Shooter</td>\n", | |
" <td>Infogrames</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16595</th>\n", | |
" <td>16598</td>\n", | |
" <td>SCORE International Baja 1000: The Official Game</td>\n", | |
" <td>PS2</td>\n", | |
" <td>2008.0</td>\n", | |
" <td>Racing</td>\n", | |
" <td>Activision</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16596</th>\n", | |
" <td>16599</td>\n", | |
" <td>Know How 2</td>\n", | |
" <td>DS</td>\n", | |
" <td>2010.0</td>\n", | |
" <td>Puzzle</td>\n", | |
" <td>7G//AMES</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16597</th>\n", | |
" <td>16600</td>\n", | |
" <td>Spirits & Spells</td>\n", | |
" <td>GBA</td>\n", | |
" <td>2003.0</td>\n", | |
" <td>Platform</td>\n", | |
" <td>Wanadoo</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>16598 rows × 11 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Rank Name Platform \\\n", | |
"0 1 Wii Sports Wii \n", | |
"1 2 Super Mario Bros. NES \n", | |
"2 3 Mario Kart Wii Wii \n", | |
"3 4 Wii Sports Resort Wii \n", | |
"4 5 Pokemon Red/Pokemon Blue GB \n", | |
"... ... ... ... \n", | |
"16593 16596 Woody Woodpecker in Crazy Castle 5 GBA \n", | |
"16594 16597 Men in Black II: Alien Escape GC \n", | |
"16595 16598 SCORE International Baja 1000: The Official Game PS2 \n", | |
"16596 16599 Know How 2 DS \n", | |
"16597 16600 Spirits & Spells GBA \n", | |
"\n", | |
" Year Genre Publisher NA_Sales EU_Sales JP_Sales \\\n", | |
"0 2006.0 Sports Nintendo 41.49 29.02 3.77 \n", | |
"1 1985.0 Platform Nintendo 29.08 3.58 6.81 \n", | |
"2 2008.0 Racing Nintendo 15.85 12.88 3.79 \n", | |
"3 2009.0 Sports Nintendo 15.75 11.01 3.28 \n", | |
"4 1996.0 Role-Playing Nintendo 11.27 8.89 10.22 \n", | |
"... ... ... ... ... ... ... \n", | |
"16593 2002.0 Platform Kemco 0.01 0.00 0.00 \n", | |
"16594 2003.0 Shooter Infogrames 0.01 0.00 0.00 \n", | |
"16595 2008.0 Racing Activision 0.00 0.00 0.00 \n", | |
"16596 2010.0 Puzzle 7G//AMES 0.00 0.01 0.00 \n", | |
"16597 2003.0 Platform Wanadoo 0.01 0.00 0.00 \n", | |
"\n", | |
" Other_Sales Global_Sales \n", | |
"0 8.46 82.74 \n", | |
"1 0.77 40.24 \n", | |
"2 3.31 35.82 \n", | |
"3 2.96 33.00 \n", | |
"4 1.00 31.37 \n", | |
"... ... ... \n", | |
"16593 0.00 0.01 \n", | |
"16594 0.00 0.01 \n", | |
"16595 0.00 0.01 \n", | |
"16596 0.00 0.01 \n", | |
"16597 0.00 0.01 \n", | |
"\n", | |
"[16598 rows x 11 columns]" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# source file from https://www.kaggle.com/gregorut/videogamesales\n", | |
"df = pd.read_csv('./vgsales.csv')\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead tr th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead tr:last-of-type th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th colspan=\"12\" halign=\"left\">Global_Sales</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th></th>\n", | |
" <th>Genre</th>\n", | |
" <th>Action</th>\n", | |
" <th>Adventure</th>\n", | |
" <th>Fighting</th>\n", | |
" <th>Misc</th>\n", | |
" <th>Platform</th>\n", | |
" <th>Puzzle</th>\n", | |
" <th>Racing</th>\n", | |
" <th>Role-Playing</th>\n", | |
" <th>Shooter</th>\n", | |
" <th>Simulation</th>\n", | |
" <th>Sports</th>\n", | |
" <th>Strategy</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Year</th>\n", | |
" <th>Publisher</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th rowspan=\"2\" valign=\"top\">1980.0</th>\n", | |
" <th>Activision</th>\n", | |
" <td>0.34</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.77</td>\n", | |
" <td>1.42</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.49</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Atari</th>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>1.29</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>7.07</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th rowspan=\"3\" valign=\"top\">1981.0</th>\n", | |
" <th>Activision</th>\n", | |
" <td>0.82</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>4.50</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.48</td>\n", | |
" <td>0.00</td>\n", | |
" <td>2.70</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Atari</th>\n", | |
" <td>2.69</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.97</td>\n", | |
" <td>1.65</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>2.09</td>\n", | |
" <td>0.45</td>\n", | |
" <td>0.60</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20th Century Fox Video Games</th>\n", | |
" <td>1.13</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.22</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th rowspan=\"2\" valign=\"top\">2016.0</th>\n", | |
" <th>Stainless Games</th>\n", | |
" <td>0.01</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>UIG Entertainment</th>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th rowspan=\"2\" valign=\"top\">2017.0</th>\n", | |
" <th>Sega</th>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.04</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Idea Factory</th>\n", | |
" <td>0.01</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2020.0</th>\n", | |
" <th>Ubisoft</th>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.29</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>2321 rows × 12 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Global_Sales \\\n", | |
"Genre Action Adventure Fighting Misc \n", | |
"Year Publisher \n", | |
"1980.0 Activision 0.34 0.0 0.77 1.42 \n", | |
" Atari 0.00 0.0 0.00 1.29 \n", | |
"1981.0 Activision 0.82 0.0 0.00 0.00 \n", | |
" Atari 2.69 0.0 0.00 0.00 \n", | |
" 20th Century Fox Video Games 1.13 0.0 0.00 0.00 \n", | |
"... ... ... ... ... \n", | |
"2016.0 Stainless Games 0.01 0.0 0.00 0.00 \n", | |
" UIG Entertainment 0.00 0.0 0.00 0.00 \n", | |
"2017.0 Sega 0.00 0.0 0.00 0.00 \n", | |
" Idea Factory 0.01 0.0 0.00 0.00 \n", | |
"2020.0 Ubisoft 0.00 0.0 0.00 0.00 \n", | |
"\n", | |
" \\\n", | |
"Genre Platform Puzzle Racing Role-Playing \n", | |
"Year Publisher \n", | |
"1980.0 Activision 0.00 0.00 0.00 0.00 \n", | |
" Atari 0.00 0.00 0.00 0.00 \n", | |
"1981.0 Activision 4.50 0.00 0.48 0.00 \n", | |
" Atari 0.97 1.65 0.00 0.00 \n", | |
" 20th Century Fox Video Games 0.00 0.00 0.00 0.00 \n", | |
"... ... ... ... ... \n", | |
"2016.0 Stainless Games 0.00 0.00 0.00 0.00 \n", | |
" UIG Entertainment 0.00 0.00 0.00 0.00 \n", | |
"2017.0 Sega 0.00 0.00 0.00 0.04 \n", | |
" Idea Factory 0.00 0.00 0.00 0.00 \n", | |
"2020.0 Ubisoft 0.00 0.00 0.00 0.00 \n", | |
"\n", | |
" \n", | |
"Genre Shooter Simulation Sports Strategy \n", | |
"Year Publisher \n", | |
"1980.0 Activision 0.00 0.00 0.49 0.0 \n", | |
" Atari 7.07 0.00 0.00 0.0 \n", | |
"1981.0 Activision 2.70 0.00 0.00 0.0 \n", | |
" Atari 2.09 0.45 0.60 0.0 \n", | |
" 20th Century Fox Video Games 0.22 0.00 0.00 0.0 \n", | |
"... ... ... ... ... \n", | |
"2016.0 Stainless Games 0.00 0.00 0.00 0.0 \n", | |
" UIG Entertainment 0.00 0.01 0.00 0.0 \n", | |
"2017.0 Sega 0.00 0.00 0.00 0.0 \n", | |
" Idea Factory 0.00 0.00 0.00 0.0 \n", | |
"2020.0 Ubisoft 0.00 0.29 0.00 0.0 \n", | |
"\n", | |
"[2321 rows x 12 columns]" | |
] | |
}, | |
"execution_count": 30, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pivot_df = df.pivot_table(index=['Year', 'Publisher'], columns=['Genre'], values=['Global_Sales'], aggfunc=np.sum, fill_value=0)\n", | |
"pivot_df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead tr th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr>\n", | |
" <th></th>\n", | |
" <th>Year</th>\n", | |
" <th>Publisher</th>\n", | |
" <th colspan=\"12\" halign=\"left\">Global_Sales</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Genre</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th>Action</th>\n", | |
" <th>Adventure</th>\n", | |
" <th>Fighting</th>\n", | |
" <th>Misc</th>\n", | |
" <th>Platform</th>\n", | |
" <th>Puzzle</th>\n", | |
" <th>Racing</th>\n", | |
" <th>Role-Playing</th>\n", | |
" <th>Shooter</th>\n", | |
" <th>Simulation</th>\n", | |
" <th>Sports</th>\n", | |
" <th>Strategy</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1980.0</td>\n", | |
" <td>Activision</td>\n", | |
" <td>0.34</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.77</td>\n", | |
" <td>1.42</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.49</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1980.0</td>\n", | |
" <td>Atari</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>1.29</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>7.07</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1981.0</td>\n", | |
" <td>Activision</td>\n", | |
" <td>0.82</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>4.50</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.48</td>\n", | |
" <td>0.00</td>\n", | |
" <td>2.70</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1981.0</td>\n", | |
" <td>Atari</td>\n", | |
" <td>2.69</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.97</td>\n", | |
" <td>1.65</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>2.09</td>\n", | |
" <td>0.45</td>\n", | |
" <td>0.60</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1981.0</td>\n", | |
" <td>20th Century Fox Video Games</td>\n", | |
" <td>1.13</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.22</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2316</th>\n", | |
" <td>2016.0</td>\n", | |
" <td>Stainless Games</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2317</th>\n", | |
" <td>2016.0</td>\n", | |
" <td>UIG Entertainment</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2318</th>\n", | |
" <td>2017.0</td>\n", | |
" <td>Sega</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.04</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2319</th>\n", | |
" <td>2017.0</td>\n", | |
" <td>Idea Factory</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2320</th>\n", | |
" <td>2020.0</td>\n", | |
" <td>Ubisoft</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.29</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>2321 rows × 14 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Year Publisher Global_Sales \\\n", | |
"Genre Action Adventure Fighting \n", | |
"0 1980.0 Activision 0.34 0.0 0.77 \n", | |
"1 1980.0 Atari 0.00 0.0 0.00 \n", | |
"2 1981.0 Activision 0.82 0.0 0.00 \n", | |
"3 1981.0 Atari 2.69 0.0 0.00 \n", | |
"4 1981.0 20th Century Fox Video Games 1.13 0.0 0.00 \n", | |
"... ... ... ... ... ... \n", | |
"2316 2016.0 Stainless Games 0.01 0.0 0.00 \n", | |
"2317 2016.0 UIG Entertainment 0.00 0.0 0.00 \n", | |
"2318 2017.0 Sega 0.00 0.0 0.00 \n", | |
"2319 2017.0 Idea Factory 0.01 0.0 0.00 \n", | |
"2320 2020.0 Ubisoft 0.00 0.0 0.00 \n", | |
"\n", | |
" \\\n", | |
"Genre Misc Platform Puzzle Racing Role-Playing Shooter Simulation Sports \n", | |
"0 1.42 0.00 0.00 0.00 0.00 0.00 0.00 0.49 \n", | |
"1 1.29 0.00 0.00 0.00 0.00 7.07 0.00 0.00 \n", | |
"2 0.00 4.50 0.00 0.48 0.00 2.70 0.00 0.00 \n", | |
"3 0.00 0.97 1.65 0.00 0.00 2.09 0.45 0.60 \n", | |
"4 0.00 0.00 0.00 0.00 0.00 0.22 0.00 0.00 \n", | |
"... ... ... ... ... ... ... ... ... \n", | |
"2316 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", | |
"2317 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 \n", | |
"2318 0.00 0.00 0.00 0.00 0.04 0.00 0.00 0.00 \n", | |
"2319 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", | |
"2320 0.00 0.00 0.00 0.00 0.00 0.00 0.29 0.00 \n", | |
"\n", | |
" \n", | |
"Genre Strategy \n", | |
"0 0.0 \n", | |
"1 0.0 \n", | |
"2 0.0 \n", | |
"3 0.0 \n", | |
"4 0.0 \n", | |
"... ... \n", | |
"2316 0.0 \n", | |
"2317 0.0 \n", | |
"2318 0.0 \n", | |
"2319 0.0 \n", | |
"2320 0.0 \n", | |
"\n", | |
"[2321 rows x 14 columns]" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"mi_pivot_df = pivot_df.reset_index()\n", | |
"mi_pivot_df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"ename": "NotImplementedError", | |
"evalue": "Writing to Excel with MultiIndex columns and no index ('index'=False) is not yet implemented.", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[1;31mNotImplementedError\u001b[0m Traceback (most recent call last)", | |
"\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_32632/2757024653.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mpivot_df\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_excel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'./global_sales_by_publishers_genres.xlsx'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[1;32m~\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\pandas\\core\\generic.py\u001b[0m in \u001b[0;36mto_excel\u001b[1;34m(self, excel_writer, sheet_name, na_rep, float_format, columns, header, index, index_label, startrow, startcol, engine, merge_cells, encoding, inf_rep, verbose, freeze_panes)\u001b[0m\n\u001b[0;32m 2024\u001b[0m \u001b[0minf_rep\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0minf_rep\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2025\u001b[0m )\n\u001b[1;32m-> 2026\u001b[1;33m formatter.write(\n\u001b[0m\u001b[0;32m 2027\u001b[0m \u001b[0mexcel_writer\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2028\u001b[0m \u001b[0msheet_name\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msheet_name\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m~\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\pandas\\io\\formats\\excel.py\u001b[0m in \u001b[0;36mwrite\u001b[1;34m(self, writer, sheet_name, startrow, startcol, freeze_panes, engine)\u001b[0m\n\u001b[0;32m 732\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 733\u001b[0m \u001b[0mformatted_cells\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_formatted_cells\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 734\u001b[1;33m writer.write_cells(\n\u001b[0m\u001b[0;32m 735\u001b[0m \u001b[0mformatted_cells\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 736\u001b[0m \u001b[0msheet_name\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m~\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\pandas\\io\\excel\\_openpyxl.py\u001b[0m in \u001b[0;36mwrite_cells\u001b[1;34m(self, cells, sheet_name, startrow, startcol, freeze_panes)\u001b[0m\n\u001b[0;32m 419\u001b[0m )\n\u001b[0;32m 420\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 421\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mcell\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mcells\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 422\u001b[0m xcell = wks.cell(\n\u001b[0;32m 423\u001b[0m \u001b[0mrow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mstartrow\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mcell\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrow\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolumn\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mstartcol\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mcell\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcol\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m~\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\pandas\\io\\formats\\excel.py\u001b[0m in \u001b[0;36mget_formatted_cells\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 686\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 687\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mget_formatted_cells\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 688\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mcell\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mitertools\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchain\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_format_header\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_format_body\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 689\u001b[0m \u001b[0mcell\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mval\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_format_value\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcell\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mval\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 690\u001b[0m \u001b[1;32myield\u001b[0m \u001b[0mcell\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m~\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\pandas\\io\\formats\\excel.py\u001b[0m in \u001b[0;36m_format_header_mi\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 449\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 450\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 451\u001b[1;33m raise NotImplementedError(\n\u001b[0m\u001b[0;32m 452\u001b[0m \u001b[1;34m\"Writing to Excel with MultiIndex columns and no \"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 453\u001b[0m \u001b[1;34m\"index ('index'=False) is not yet implemented.\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;31mNotImplementedError\u001b[0m: Writing to Excel with MultiIndex columns and no index ('index'=False) is not yet implemented." | |
] | |
} | |
], | |
"source": [ | |
"pivot_df.to_excel('./global_sales_by_publishers_genres.xlsx', index=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Year</th>\n", | |
" <th>Publisher</th>\n", | |
" <th>Action</th>\n", | |
" <th>Adventure</th>\n", | |
" <th>Fighting</th>\n", | |
" <th>Misc</th>\n", | |
" <th>Platform</th>\n", | |
" <th>Puzzle</th>\n", | |
" <th>Racing</th>\n", | |
" <th>Role-Playing</th>\n", | |
" <th>Shooter</th>\n", | |
" <th>Simulation</th>\n", | |
" <th>Sports</th>\n", | |
" <th>Strategy</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1980.0</td>\n", | |
" <td>Activision</td>\n", | |
" <td>0.34</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.77</td>\n", | |
" <td>1.42</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.49</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1980.0</td>\n", | |
" <td>Atari</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>1.29</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>7.07</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1981.0</td>\n", | |
" <td>Activision</td>\n", | |
" <td>0.82</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>4.50</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.48</td>\n", | |
" <td>0.00</td>\n", | |
" <td>2.70</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1981.0</td>\n", | |
" <td>Atari</td>\n", | |
" <td>2.69</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.97</td>\n", | |
" <td>1.65</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>2.09</td>\n", | |
" <td>0.45</td>\n", | |
" <td>0.60</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1981.0</td>\n", | |
" <td>20th Century Fox Video Games</td>\n", | |
" <td>1.13</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.22</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2316</th>\n", | |
" <td>2016.0</td>\n", | |
" <td>Stainless Games</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2317</th>\n", | |
" <td>2016.0</td>\n", | |
" <td>UIG Entertainment</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2318</th>\n", | |
" <td>2017.0</td>\n", | |
" <td>Sega</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.04</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2319</th>\n", | |
" <td>2017.0</td>\n", | |
" <td>Idea Factory</td>\n", | |
" <td>0.01</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2320</th>\n", | |
" <td>2020.0</td>\n", | |
" <td>Ubisoft</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.29</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>2321 rows × 14 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Year Publisher Action Adventure Fighting Misc \\\n", | |
"0 1980.0 Activision 0.34 0.0 0.77 1.42 \n", | |
"1 1980.0 Atari 0.00 0.0 0.00 1.29 \n", | |
"2 1981.0 Activision 0.82 0.0 0.00 0.00 \n", | |
"3 1981.0 Atari 2.69 0.0 0.00 0.00 \n", | |
"4 1981.0 20th Century Fox Video Games 1.13 0.0 0.00 0.00 \n", | |
"... ... ... ... ... ... ... \n", | |
"2316 2016.0 Stainless Games 0.01 0.0 0.00 0.00 \n", | |
"2317 2016.0 UIG Entertainment 0.00 0.0 0.00 0.00 \n", | |
"2318 2017.0 Sega 0.00 0.0 0.00 0.00 \n", | |
"2319 2017.0 Idea Factory 0.01 0.0 0.00 0.00 \n", | |
"2320 2020.0 Ubisoft 0.00 0.0 0.00 0.00 \n", | |
"\n", | |
" Platform Puzzle Racing Role-Playing Shooter Simulation Sports \\\n", | |
"0 0.00 0.00 0.00 0.00 0.00 0.00 0.49 \n", | |
"1 0.00 0.00 0.00 0.00 7.07 0.00 0.00 \n", | |
"2 4.50 0.00 0.48 0.00 2.70 0.00 0.00 \n", | |
"3 0.97 1.65 0.00 0.00 2.09 0.45 0.60 \n", | |
"4 0.00 0.00 0.00 0.00 0.22 0.00 0.00 \n", | |
"... ... ... ... ... ... ... ... \n", | |
"2316 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", | |
"2317 0.00 0.00 0.00 0.00 0.00 0.01 0.00 \n", | |
"2318 0.00 0.00 0.00 0.04 0.00 0.00 0.00 \n", | |
"2319 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", | |
"2320 0.00 0.00 0.00 0.00 0.00 0.29 0.00 \n", | |
"\n", | |
" Strategy \n", | |
"0 0.0 \n", | |
"1 0.0 \n", | |
"2 0.0 \n", | |
"3 0.0 \n", | |
"4 0.0 \n", | |
"... ... \n", | |
"2316 0.0 \n", | |
"2317 0.0 \n", | |
"2318 0.0 \n", | |
"2319 0.0 \n", | |
"2320 0.0 \n", | |
"\n", | |
"[2321 rows x 14 columns]" | |
] | |
}, | |
"execution_count": 34, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"flat_index_pivot_df = pivot_df.copy()\n", | |
"flat_index_pivot_df.columns = flat_index_pivot_df.columns.droplevel(0)\n", | |
"flat_index_pivot_df.reset_index(inplace=True)\n", | |
"flat_index_pivot_df.columns.name = None\n", | |
"flat_index_pivot_df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"flat_index_pivot_df.to_excel('./global_sales_by_publishers_genres.xlsx', index=False)" | |
] | |
} | |
], | |
"metadata": { | |
"interpreter": { | |
"hash": "35902a86f051726a4472fa8055a315c781dbc3c6be2d668029bf8d8290fe86ee" | |
}, | |
"kernelspec": { | |
"display_name": "Python 3.9.2 64-bit", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.9.2" | |
}, | |
"orig_nbformat": 4 | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment