はじめに
-
AではじまりCでおわる素材の会社
はAGC
以外にもあるのではないかと思い調べてみました
データ
- 東証上場銘柄一覧(2021年3月末)をJPXより取得
方法
データ内容確認
import pandas as pd
df = pd.ExcelFile('./data_j.xls').parse('Sheet1')
df.head()
- 出力は下記の通り。「銘柄名」列に会社の名前が、「33業種区分」列もしくは「17業種区分」列に、その会社の業種情報が入力されている
- 4096銘柄あるらしい!
日付 コード 銘柄名 市場・商品区分 33業種コード 33業種区分 17業種コード 17業種区分 規模コード 規模区分
0 20210331 1301 極洋 市場第一部(内国株) 50 水産・農林業 1 食品 7 TOPIX Small 2
1 20210331 1305 ダイワ上場投信-トピックス ETF・ETN - - - - - -
2 20210331 1306 NEXT FUNDS TOPIX連動型上場投信 ETF・ETN - - - - - -
3 20210331 1308 上場インデックスファンドTOPIX ETF・ETN - - - - - -
4 20210331 1309 NEXT FUNDS ChinaAMC・中国株式・上証50連動型上場投信 ETF・ETN - - - - - -
注目すべきデータ項目
- 「銘柄名」については、漢字、平仮名、片仮名、アルファベット(全角)で構成されている。
- もしかすると「エイ・ビイ・シイ」や「栄作エージェンシー」という会社もあるかもしれない。これらも
「A(えい)」ではじまり「C(しい)」で終わる会社
とみなすことができる。本気出すなら、ひらがなやアルファベットに統一する必要がありそう(だが面倒なのでスキップ)
- もしかすると「エイ・ビイ・シイ」や「栄作エージェンシー」という会社もあるかもしれない。これらも
-
33業種区分
/17業種区分
のうち、素材
というワードが含まれるのは、17業種区分
の中の素材・化学
のみ。17業種コード
では、4番
。
問題定義
AではじまりCでおわる素材の会社
とは、銘柄名
が、「A」ではじまり「C」でおわり、かつ、17業種コード
が4番
の会社と今回は定義する。
実装
-
銘柄名
が、「A」ではじまり「C」でおわる、については、正規表現を使う。-
^
は「文頭」「行頭」 -
$
は「文末」「行末」 -
.
は任意の 1 文字。 -
*
は直前のパターンを 0 回以上繰り返し
-
-
17業種コード
が4番
については省略 - これらを統合すると次のように書くことができる
df[(df['銘柄名'].str.contains('^A.*C$')) & (df['17業種コード']==4)]
結果
null
- もう一回!
>>> df[(df['銘柄名'].str.contains('^A.*C$')) & (df['17業種コード']==4)]
null
- あれー
考察
-
あれー
ってなってしまったので、素材の会社
の条件をとっぱらった。結果は次の通り
>>> df[df['銘柄名'].str.contains('^A.*C$')]
日付 コード 銘柄名 市場・商品区分 33業種コード 33業種区分 17業種コード 17業種区分 規模コード 規模区分
1953 20210331 5201 AGC 市場第一部(内国株) 3400 ガラス・土石製品 3 建設・資材 4 TOPIX Mid400
-
AGC
!!!!!!!!!- 条件を緩めても、日本の上場企業の中でひとつだけしか存在しなかったのは正直おどろき
- JPXの定義では、
AGC
は、ガラス・土石製品
業になるので素材
の会社ではなかった - よって、二つの条件を満たす企業は皆無だったため、null を返した
まとめ
- AではじまりCでおわる素材の会社は?と問われたら、
思いつきで手を動かさず、まず確認が重要
→新人の時にやらかしたし、今でもやらかす-
A(全角)
のみならずA(半角)
を考慮すべきか -
えい
やえー
など読みを考慮するか - 日本企業か海外企業まで含むか
- 上場企業か非上場企業か
-
素材の会社
とは何か。業種区分で良いか。その定義は実態に則しているか - などなど
-
- 仕事は同じことを複数回行うことが多いので、最初は大変でもプログラム化しておくと良い。
- 可愛い上司やお客様から「もう一回♪」と言われること多し
- 個人視点でも後々作業が楽になるし、会社視点でも誰がやっても同じ結果になるのはありがたいはず
- 目の前のパソコンは、人間を楽させてくれるために存在しているらしい
-
広瀬すず
ちゃんは可愛い - 何か他にいい方法があれば教えてください!