見出し画像

ゲームソフトの売上げ本数のデータを分析してみる2【python】

前回のゲームソフトの売上げ本数のデータから、引き続き色々と調べます。

Jupyter Notebookでファイルを開きます。

import pandas as pd                                   
df = pd.read_csv("C:\\Users\\csv_file\\vgsales.csv")    # csvファイルの読込



では機種別の売上げから見ていきましょう。
PlatformでPS3だけを抽出して、PS3のランキングを作成。

df.drop("Rank",axis=1,inplace=True)               # "Rank"の列を削除
df[df["Platform"] == "PS3"]                        # "Platform"の"PS3"を抽出
df_ps3 = df[df["Platform"] == "PS3"]               # 抽出したdfをdf_ps3に
df_ps3.sort_values("Global_Sales", ascending=False) # "Global_Sales"を降順に並べ替え
df_ps3
df_ps3



インデックスを順位として、見るために振り直します。

import numpy as np                                  # numpyをインポート
df_ps3.index = np.arange(1, len(df_ps3)+1)          # indexを1から
df_ps3.head(10)                                     # 上から10個を表示
df_ps3_top10 = df_ps3.head(10)                      # そのdfをdf_ps3_top10に
df_ps3_top10

"Global_Sales"の売上げをグラフにします。
ここでseabornをインポートして、sns.set()でグラフを見やすくします。

import numpy as np                             # numpyをインポート
import matplotlib.pyplot as plt                # matplotlib.pyplotをインポート
import seaborn as sns                          # seabornをインポート
sns.set()                                      # snsのスタイルを適用

x = np.arange(10)                              # 変数xに1から10までの数列をを生成
y = df_ps3_top10['Global_Sales']               # 変数yに'Global_Sales'を

plt.title("Top10",{"fontsize": 20})            # タイトル名
plt.xlabel("Ranking",{"fontsize": 14})         # x軸のタイトル
plt.ylabel("Sales", {"fontsize": 14})          # y軸のタイトル

plt.bar(x, y, tick_label=np.arange(1, 11, 1))  # 棒グラフ描画、各棒に数字を振る
plt.grid(axis='x')                             # 背景の縦軸を非表示
plt.rcParams['figure.figsize'] = (7 ,8)        # グラフのサイズ変更
plt.show()
df_ps3_top10["Global_Sales"]


1位 Grand Theft Auto V                        2140万本
2位 Call of Duty: Black Ops II                        1403万本
3位 Call of Duty: Modern Warfare 3                   1346万本
4位 Call of Duty: Black Ops                      1273万本
5位 Gran Turismo 5                                                       1077万本
6位 Call of Duty: Modern Warfare 2                              1069万本
7位 Grand Theft Auto IV                           1057万本
8位 Call of Duty: Ghosts                           959万本
9位 FIFA Soccer 13                                      824万本
10位 Battlefield 3                                                           723万本

半分がCoDシリーズで、新作のたびにヒットしていますね。


ではこのデータから、地域別に売上げ本数を見ます。
dropメソッドで"Year"と"Global_Sales"の列を削除します。

df_ps3_top10_area = df_ps3_top10.drop(["Year","Global_Sales"],axis=1)
df_ps3_top10_area
df_ps3_top10_area

pandasのメソッドのplot.barで地域別に1位から5位までを、棒グラフにします。
stacked=Falseで横並びに。
matplotlibだとコードが長くなりますが、pandasだと1行で書けます。

df_ps3_top10_area[:5].plot.bar(stacked=False,rot=0,width=.7).grid(axis='x')
df_ps3_top10_area[:5]

1位 Grand Theft Auto V                     
2位 Call of Duty: Black Ops II                        
3位 Call of Duty: Modern Warfare 3                 
4位 Call of Duty: Black Ops                   
5位 Gran Turismo 5


このグラフから北アメリカとヨーロッパが日本の何倍とあって、市場の大きさが伺えます。英語圏というのも大きいですね。
日本市場は単純にプレイヤー数が少ないのもあって、各バーは短いです。
それでも日本で100万本近く売れたGTA5は凄いです。




今度は、日本で売れたゲームのランキングTop10を見ましょう。
dfの"JP_Sales"を降順に並べ替えます。
最初と同じようにして、df_jp_top10を作りました。

df_jp = df.sort_values("JP_Sales",ascending=False)
df_jp.index = np.arange(1, len(df_jp)+1)
df_jp_top10 = df_jp.head(10)
df_jp_top10
df_jp_top10

                               JP_Sales
1位 ポケモン赤/ポケモン緑                                                             1022万本
2位 ポケモン金/ポケモン銀                                                               720万本
3位 スーパーマリオブラザーズ                                                           681万本
4位 ニュースーパーマリオブラザーズ                           650万本
5位 ポケモンダイヤモンド/ポケモンパール                                     604万本
6位 ポケモンブラック/ポケモンホワイト                                         565万本
7位 ポケモンルビー/ポケモンサファイア                                         538万本
8位 おいでよ どうぶつの森                                                                 533万本
9位 もっと脳を鍛える大人のDSトレーニング                                    532万本
10位 モンスターハンターポータブル 3rd                                           487万本



日本だとポケモンシリーズが一番売れているゲームみたいですね。
出るたびにミリオンは、間違いないといったところでしょうか。
そしてやはり任天堂は強いです。



ではこのランキングから地域別に売上げ本数をグラフ化します。

df_jp_top10_area = df_jp_top10.drop(["Year", "Global_Sales"], axis=1)
df_jp_top10_area
df_jp_top10_area

1位から5位までを描画。
ランキングは"Jp_Sales"を順にしています。

df_jp_top10_area[:5].plot.bar(stacked=False, rot=0, width=.7).grid(axis='x')
df_jp_top10_area[:5]

1位 ポケモン赤/ポケモン緑                                                           
2位 ポケモン金/ポケモン銀                                                             
3位 スーパーマリオブラザーズ                                                         
4位 ニュースーパーマリオブラザーズ                           
5位 ポケモンダイヤモンド/ポケモンパール 


1位の『ポケモン赤/ポケモン緑』の日本の売上げ本数が、北アメリカとヨーロッパの間にあって、大きな差がありません。
2位の『ポケモン金/ポケモン銀』も、1位と同じ感じです。
3位の『スーパーマリオブラザーズ』 の、北アメリカの売上げ本数がとてつもなく高いです。一体どういう事なんでしょう?
こんなに売れていたとは、思いもよらなかったです。




次は私の好きなゲーム『メタルギアソリッド』シリーズが、どれくらい売れたのかを調べてみようと思います。
まずはdfの"Name"で"Metal Gear Solid"と一致すdfを出力。

df[df["Name"] == "Metal Gear Solid"]

なぜか2つあります。
調べてみると『メタルギア ゴーストバベル』っていう名前で、GBにて発売されたみたいです。
まったく知らなかったです。そしてあまり売れてないみたいです。


このdfから"Publisher"の正確な名前がわかりました。
"Konami Digital Entertainment"

次にdfの"Publisher"で"Konami Digital Entertainment"と、一致するdfを出力。

df_konami = df[df["Publisher"] == "Konami Digital Entertainment"]
df_konami

Konamiのゲームが832個あります。
この中から"Name"に"Metal Gear Solid"が含まれるdfトップ5を出力します。
str.contains()を使います。

df_konami[df_konami["Name"].str.contains("Metal Gear Solid", case=False)].head(5)
df_mgs_top5 = df_konami[df_konami["Name"].str.contains("Metal Gear Solid", case=False)].head(5)
df_mgs_top5.index = np.arange(1, len(df_mgs_top5)+1)
df_mgs_top5
df_mgs_top5


このランキングから地域別に売上げ本数をグラフ化します。
ランキングは"Global_Sales"の順。

df_mgs_top5_area = df_mgs_top5.drop(["Year", "Global_Sales"], axis=1)

df_mgs_top5_area.plot.bar(stacked=False, rot=0, width=.7).grid(axis='x')
df_mgs_top5_area

                             Global_Sales
1位 Metal Gear Solid 2: Sons of Liberty                                           605万本
2位 Metal Gear Solid 4: Guns of the Patriots                                   603万本 
3位 Metal Gear Solid                                                                        603万本
4位 Metal Gear Solid 3: Snake Eater                           423万本
5位 Metal Gear Solid V: The Phantom Pain                                      338万本



1、2、3位のGlobal_Salesは、ほとんど変わらないですね。北アメリカでは初代『Metal Gear Solid』が一番売れてます。
日本だと大体同じ本数売れている、という感じですね。
ヨーロッパだと『Metal Gear Solid 2』が一番売れて200万本越えです。
『Metal Gear Solid V』は全体的に少なくなったという感じでしょうか。


よく見ると『Metal Gear Solid 3』のヨーロッパの売上げが0になってます。
『Metal Gear Solid 3』のOtherのグラフが異様に長いので、もしかしたらOtherに加算されてるかもしれないです。


以上です。


この記事が気に入ったらサポートをしてみませんか?