LoginSignup
16
8

More than 3 years have passed since last update.

東証上場企業リストから、AではじまりCでおわる素材の会社を探す【正規表現】

Last updated at Posted at 2021-04-07

はじめに

  • AではじまりCでおわる素材の会社AGC以外にもあるのではないかと思い調べてみました

データ

方法

データ内容確認

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(半角)を考慮すべきか
    • えいえーなど読みを考慮するか
    • 日本企業か海外企業まで含むか
    • 上場企業か非上場企業か
    • 素材の会社とは何か。業種区分で良いか。その定義は実態に則しているか
    • などなど
  • 仕事は同じことを複数回行うことが多いので、最初は大変でもプログラム化しておくと良い。
    • 可愛い上司やお客様から「もう一回♪」と言われること多し
    • 個人視点でも後々作業が楽になるし、会社視点でも誰がやっても同じ結果になるのはありがたいはず
    • 目の前のパソコンは、人間を楽させてくれるために存在しているらしい
  • 広瀬すずちゃんは可愛い
  • 何か他にいい方法があれば教えてください! ​
16
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
8