はじめに
転職活動を始めるにあたり、企業の情報収集を始めました。 今回は興味本位で、年収を高い上場企業を調べました。
単に調べるのはつまらないため、pythonを用いてデータを集めて、可視化をしました。 (pythonの練習もかねて・・・)
やったこと
- ヤフーのフィナンシャルのHPからスクレイピング
- とりあえず、CSVとして保存
- 可視化の練習
プログラム
スクレイピングとCSVとして保存
まず、後々必要となりそうなパッケージをあらかじめインポートしておきます。
%matplotlib inline import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import plotly.offline import plotly.express as px import plotly.graph_objects as go import plotly.subplots import squarify
さて、もろもろインポートしたところで、どこから企業のデータを集めるのか、考えました。 今回は、ググってはじめに出てきたヤフーのファイナンスを使用しました。
はじめ、上場している約3000件のデータを集めようかと思いました。 しかしながら、今回はトップ層を知りたいので、割愛。
そのため、上位50社のみのデータを集めました。 その際、今後、何かに使用する可能性もあると考え、念のため、CSVとして保存しておきます。
url = "https://info.finance.yahoo.co.jp/ranking/?kd=45" df = pd.read_html(url) df[0].to_csv("data.csv", encoding="SHIFT-JIS")
さて、データを50社分保存したところで、jupyter notebookにデータを表示します。 はたして、ちゃんとデータを集めることができたのか。。。
file = pd.read_csv("data.csv", encoding="SHIFT-JIS", dtype = None ) #文字列を取得できるようにdtypeを記述。 print(file)
Unnamed: 0 順位 コード 市場 名称 取引値 取引値.1 \
0 0 1 8771 東証1部 イー・ギャランティ(株) 4月30日 2108.0
1 1 2 6080 東証1部 M&Aキャピタルパートナーズ(株) 4月30日 5060.0
2 2 3 6861 東証1部 (株)キーエンス 4月30日 52520.0
3 3 4 3003 東証1部 ヒューリック(株) 4月30日 1244.0
4 4 5 8058 東証1部 三菱商事(株) 4月30日 3020.0
5 5 6 9401 東証1部 (株)TBSホールディングス 4月30日 2128.0
6 6 7 8001 東証1部 伊藤忠商事(株) 4月30日 3408.0
7 7 8 3252 東証1部 日本商業開発(株) 4月30日 1677.0
8 8 9 9684 東証1部 (株)スクウェア・エニックス・ホールディングス 4月30日 6080.0
9 9 10 8002 東証1部 丸紅(株) 4月30日 908.6
10 10 11 8053 東証1部 住友商事(株) 4月30日 1488.0
11 11 12 9404 東証1部 日本テレビホールディングス(株) 4月30日 1430.0
12 12 13 8031 東証1部 三井物産(株) 4月30日 2303.5
13 13 14 9984 東証1部 ソフトバンクグループ(株) 4月30日 9885.0
14 14 15 9409 東証1部 (株)テレビ朝日ホールディングス 4月30日 1998.0
15 15 16 6196 東証1部 (株)ストライク 4月30日 4585.0
16 16 17 2127 東証1部 (株)日本M&Aセンター 4月30日 2864.0
17 17 18 9413 東証1部 (株)テレビ東京ホールディングス 4月30日 2218.0
18 18 19 6920 東証1部 レーザーテック(株) 4月30日 19340.0
19 19 20 8801 東証1部 三井不動産(株) 4月30日 2370.0
20 20 21 8802 東証1部 三菱地所(株) 4月30日 1795.5
21 21 22 7190 東証1部 (株)マーキュリアインベストメント 4月30日 798.0
22 22 23 4282 東証1部 EPSホールディングス(株) 4月30日 1170.0
23 23 24 4307 東証1部 (株)野村総合研究所 4月30日 3365.0
24 24 25 9405 東証1部 朝日放送グループホールディングス(株) 4月30日 695.0
25 25 26 9412 東証1部 (株)スカパーJSATホールディングス 4月30日 459.0
26 26 27 6035 東証1部 (株)アイ・アールジャパンホールディングス 4月30日 14370.0
27 27 28 6954 東証1部 ファナック(株) 4月30日 25175.0
28 28 29 8309 東証1部 三井住友トラスト・ホールディングス(株) 4月30日 3720.0
29 29 30 5938 東証1部 (株)LIXIL 4月30日 2961.0
30 30 31 8944 東証1部 (株)ランドビジネス 4月30日 402.0
31 31 32 4188 東証1部 (株)三菱ケミカルホールディングス 4月30日 813.5
32 32 33 7327 東証1部 (株)第四北越フィナンシャルグループ 4月30日 2348.0
33 33 34 7167 東証1部 (株)めぶきフィナンシャルグループ 4月30日 238.0
34 34 35 2768 東証1部 双日(株) 4月30日 326.0
35 35 36 6088 東証1部 (株)シグマクシス 4月30日 2136.0
36 36 37 4565 マザーズ そーせいグループ(株) 4月30日 1714.0
37 37 38 8035 東証1部 東京エレクトロン(株) 4月30日 48320.0
38 38 39 4686 東証1部 (株)ジャストシステム 4月30日 6340.0
39 39 40 3289 東証1部 東急不動産ホールディングス(株) 4月30日 607.0
40 40 41 1812 東証1部 鹿島 4月30日 1510.0
41 41 42 4582 東証JQG シンバイオ製薬(株) 4月30日 1314.0
42 42 43 5020 東証1部 ENEOSホールディングス(株) 4月30日 471.2
43 43 44 4568 東証1部 第一三共(株) 4月30日 2787.0
44 44 45 2587 東証1部 サントリー食品インターナショナル(株) 4月30日 3690.0
45 45 46 8630 東証1部 SOMPOホールディングス(株) 4月30日 4060.0
46 46 47 4689 東証1部 Zホールディングス(株) 4月30日 505.0
47 47 48 8015 東証1部 豊田通商(株) 4月30日 4620.0
48 48 49 5411 東証1部 ジェイ エフ イー ホールディングス(株) 4月30日 1438.0
49 49 50 4502 東証1部 武田薬品工業(株) 4月30日 3635.0
平均年収(千円) 設立年月日 従業員数(単独) 掲示板
0 24130 2000/9/8 144 掲示板
1 22690 2005/10/12 125 掲示板
2 18390 1974/5/27 2511 掲示板
3 17080 1931/3/30 184 掲示板
4 16310 1950/4/1 5882 掲示板
5 16220 1951/5/17 110 掲示板
6 15650 1949/12/1 4227 掲示板
7 15580 2000/4/7 43 掲示板
8 14870 1980/2/5 20 掲示板
9 14520 1949/12/1 4405 掲示板
10 14370 1919/12/24 5207 掲示板
11 14010 1952/10/28 201 掲示板
12 13930 1947/7/25 5676 掲示板
13 13890 1981/9/3 224 掲示板
14 13820 1957/11/1 1256 掲示板
15 13570 1997/7/11 144 掲示板
16 13530 1991/4/25 613 掲示板
17 13240 2010/10/1 123 掲示板
18 13100 1962/8/13 312 掲示板
19 12730 1941/7/15 1678 掲示板
20 12730 1937/5/7 947 掲示板
21 12640 2005/10/5 46 掲示板
22 12530 1991/5/30 59 掲示板
23 12350 1966/1/5 6549 掲示板
24 12290 1951/3/15 68 掲示板
25 12290 2007/4/2 27 掲示板
26 12250 2015/2/2 7 掲示板
27 12160 1972/5/12 4018 掲示板
28 12010 2002/2/1 176 掲示板
29 11960 1949/9/19 15046 掲示板
30 11720 1985/2/13 27 掲示板
31 11650 2005/10/3 191 掲示板
32 11650 2018/10/1 6 掲示板
33 11570 2008/4/1 18 掲示板
34 11540 2003/4/1 2590 掲示板
35 11520 2008/5/9 555 掲示板
36 11510 1990/6/22 23 掲示板
37 11490 1963/11/11 1668 掲示板
38 11450 1981/6/2 333 掲示板
39 11370 2013/10/1 67 掲示板
40 11340 1930/2/22 8038 掲示板
41 11300 2005/3/25 127 掲示板
42 11290 2010/4/1 16 掲示板
43 11260 2005/9/28 - 掲示板
44 11180 2009/1/23 523 掲示板
45 11060 2010/4/1 377 掲示板
46 11050 1996/1/31 63 掲示板
47 11000 1948/7/1 2751 掲示板
48 10960 2002/9/27 45 掲示板
49 10910 1925/1/29 5350 掲示板
一応は、うまくスクレイピングができているみたいです。
可視化する
ここでは、データ(年収と企業)の外観を把握したいため、ヒストグラムを用いました。
さて、ここで厄介な問題として、日本語の文字化け問題に直面しました。
本来であれば、ググってjupyter notebook上の設定を行い、日本語の文字化け問題を回避するのが一番だと思います。
ところが、今回は面倒なため、フォントを指定して応急処置をしました。
plt.rcParams["font.family"] = "IPAexGothic" sns.distplot(file["平均年収(千円)"], kde=False)
はい、平均年収が2000万以上の会社が存在することが分かりました。 パチパチ。 ……内情は知りませんが(例えば役員がたくさんもらっており、それ以外の人との報酬格差があるのかどうか等のからくりは知りませんが)、会社に勤めている人たちの平均なのですごいと思います(語彙力と思考力のなさ(笑))。 通常、有価証券報告書には、平均給与の算出方法を細かく載せるようなことはしないそうなので、厳密性を求めても仕方ないと割り切ります。ということで参考程度となります。
market1 = file[file["市場"]=="東証1部"] sns.displot(market1["平均年収(千円)"], kde=False, bins=20,color="r")
次に、東証一部だけに絞って、表示してみました。 やはり、上位50社のほとんどが、東証一部となるんですね。 てっきり、上述の全体のグラフから結構歯抜けのヒストグラムになるかと思いましたが、そんなことにはなりませんでした。では、東証一部以外の「市場」も調べてみます。
sns.countplot(x="市場", data=file)
マザーズとジャスダックの文字が表示されました。しかしながら、東証二部の文字はありませんね。現在(2021年5月)、平均年収上位50社に東証二部の会社はないそうですね。マザーズとジャスダックは、それぞれそーせいグループ(株)とシンバイオ製薬(株)のようです。どちらも創薬ベンチャー企業のようですね。コロナの影響もあるのでしょうか。
単体の人数と平均年収の相関性見たいのですが、とりあえずは疲れたのでここまで。笑
結論
上場企業のなかでも、平均年収が高い上位50社の中には、一部上場以外もいる。そして、どちらも創薬ベンチャー企業。
以上、薄い情報でした笑 まあ、pythonの練習だから、気にしない!