▶ 第1話「2020年以降に上場した株だけを全部集めてみた」はこちら


  1. はじめに ーー 1枚のPDFから始まる「未来の2〜10倍株」探し
  2. 1. 2020年以降に上場した株だけを集めた理由
    1. 1-1. 上場直後〜数年は「伸び代」が一番大きいゾーン
    2. 1-2. 2020年という区切りの意味
  3. 2. PDFが教えてくれる「新興株の全体像」
    1. 2-1. ただの銘柄リストではなく「素材集」
    2. 2-2. 人間の感覚だけで 500銘柄を見続けるのは無理
  4. 3. 「新興株2020.py」がやっていることを、あえて“人間の言葉”で説明する
    1. 3-1. ベースになっているのは「2020上場_抽出結果_20251116.xlsx」
    2. 3-2. Tickerを作って、yfinanceで決算データを取りに行く
    3. 3-3. 判定は生データ、表示は億円と%
  5. 4. 「営業利益30%UP」と「赤字→黒字」の意味
    1. 4-1. なぜ“売上”より“営業利益”にこだわるのか
    2. 4-2. 営業利益30%UPは「本当に強い会社しか通らないフィルター」
    3. 4-3. 赤字→黒字は「ストーリーが変わる瞬間」
  6. 5. テーマ(系統)で“どんな物語の株か”をざっくり分ける
    1. 5-1. AI?宇宙?SaaS?ざっくりラベリング
    2. 5-2. 「テーマ × 成長」で眺めると、ストーリーが見えてくる
  7. 6. 2020上場株成長抽出①_YYYYMMDD.xlsx の中身イメージ
  8. 7. このPDFとコードをどう活かしていくか?
    1. 7-1. 600銘柄 → 200銘柄 → 日々の監視リストへ
    2. 7-2. 読者がこのPDFから学べること
  9. 8. これからどんな株を探していくのか?
    1. 8-1. 株さんが狙いたい「2〜10倍候補」の条件
    2. 8-2. 第3話以降でやっていくこと
  10. おわりに ーー 読者へのお願いと次回予告

はじめに ーー 1枚のPDFから始まる「未来の2〜10倍株」探し

Gさんです。こんにちは。

前回の第1話では、Pythonを使って、「2020年以降に上場した日本株だけを全部集める」というところまで一緒に進めました。

あのときゴールとしていたのが、このPDFです 👇

▶ 2020年以降に上場した銘柄一覧(PDFを開く)

これは、2020年以降に上場した銘柄だけを抽出した、いわば「新興株カタログ」です。 このカタログをどう料理するかで、その後の投資結果は大きく変わってきます。

第2話のテーマは、ずばりこうです。

  • なぜ、わざわざ「2020年以降上場」の株だけに絞るのか?
  • その中から、さらに「営業利益30%以上UP」「赤字→黒字」に絞る意味は?
  • その抽出を、Pythonコード(新興株2020.py)でどう実現しているのか?

このあたりを「株さん(元ゴールドマン日本株アナリスト)」の視点も交えながら、 なるべく投資初心者でもイメージが湧くように、丁寧に掘り下げていきます。


1. 2020年以降に上場した株だけを集めた理由

1-1. 上場直後〜数年は「伸び代」が一番大きいゾーン

まず大前提として、今回のPDFに載っているのは、

  • 2020年1月1日以降に上場した銘柄
  • プライム・スタンダード・グロースなど、全市場を対象
  • 東京証券取引所の一覧(jpx_all_list.csv)をベースに抽出

です。なぜ、こんなに「上場年度」を意識するのか?

株さん: 「企業ってね、上場から3〜5年くらいが一番“物語”が進むんだよ。 ビジネスモデルが市場に評価されたり、逆に期待外れと判断されたり、株価が大きく動きやすい。」

つまり、

  • すでに成熟してしまった大企業ではなく
  • まだ“物語の途中”にいる新興株にフォーカスしたい

というのが、このPDFの根っこにある考え方です。

1-2. 2020年という区切りの意味

さらに、わざわざ「2020年」を境目にしたのもポイントです。

2020年といえば、

  • コロナショック
  • 世界的な金融緩和
  • DX(デジタル・トランスフォーメーション)の加速
  • リモートワーク、オンラインサービスの急成長

…と、ビジネス環境が一気に変わった年でした。

いくさん: 「2020年以降に上場した企業って、“この新しい時代”を前提にビジネスを立ち上げてる会社が多い気がする。」

まさにその通りで、

  • クラウド / SaaS
  • AI / データ解析
  • 宇宙関連
  • フィンテック
  • バイオ・ヘルスケア

といった、これからの成長テーマど真ん中の会社たちがズラッと並んでいるのが、このPDFです。

まず、「土俵選び」として

▶ 2020年以降に上場した新興株だけを、Pythonで全部洗い出す。

ここまでが、第1話でやったこと。 そして第2話では、その土俵の上にいる会社たちを、さらに「成長でふるいにかける」ステージに進みます。


2. PDFが教えてくれる「新興株の全体像」

2-1. ただの銘柄リストではなく「素材集」

もう一度PDFを眺めてみてください。

▶ 2020年以降に上場した銘柄一覧(PDFを開く)

銘柄コード、銘柄名、市場、終値、上場日… ぱっと見はただの一覧表ですが、株さん視点だと、こう見えています。

  • 「小型で、まだ時価総額が小さい」銘柄が多い
  • 「グロース市場」が多く、“物語の途中”にいる会社ばかり
  • テーマ(AI、宇宙、SaaS、バイオ…)に偏りがある

このPDFは、料理でいえば「材料だけを全部並べた状態」です。 ここから、

  • 焦げそうな素材は外す
  • 伸びそうな素材を大事に取っておく
  • “味の強いスパイス”みたいな銘柄を見つける

という作業を、Pythonにやらせてしまおう、というのが今回のコードです。

2-2. 人間の感覚だけで 500銘柄を見続けるのは無理

PDFの銘柄数は、およそ500〜600銘柄。 これを毎日、手作業でウォッチするのは現実的ではありません。

いくさん: 「600銘柄を毎日スクリーニングして、そのうちの50銘柄だけチャートチェックして…とかって、人間の気力じゃ続かないよね。」

そこで考えたのが、

  • ① 一度、成長でガツンとふるいにかけて、候補を200銘柄くらいまで減らす
  • ② そこから先は、毎日・毎週の“監視リスト”として運用する

という二段構えです。

その「①」の役割を担うのが、今回の新興株2020.py。 このコードは、PDFの元になっているExcelを読み込み、

  • 営業利益が30%以上増えている会社
  • 営業利益が赤字から黒字に転換した会社

だけを抽出してくれます。


3. 「新興株2020.py」がやっていることを、あえて“人間の言葉”で説明する

ここからは、さきほど貼っていただいたコードを、あえて「人間語」に翻訳してみます。

3-1. ベースになっているのは「2020上場_抽出結果_20251116.xlsx」

コードの冒頭では、まずこの2行で、今回の主役ファイルを指定しています。

INPUT_XLSX = os.path.join(SCRIPT_DIR, "2020上場_抽出結果_20251116.xlsx") INPUT_SHEET = "2020上場" 

つまり、

  • 第1話で作った「2020上場_抽出結果_20251116.xlsx」を読み込み
  • その中の「2020上場」というシートをベースにする

という宣言です。

このシートには、

  • コード
  • 銘柄名
  • 市場
  • 終値
  • 上場推定日

などが入っています。 この“第1ステージの結果”を土台に、成長度合いでふるいにかけるのが第2ステージです。

3-2. Tickerを作って、yfinanceで決算データを取りに行く

株さんの相棒として、Pythonはyfinanceというライブラリを使っています。

if "Ticker" not in base.columns: base["Ticker"] = base["コード"] + ".T" 

東京市場の銘柄は、yahoo finance 上では「銘柄コード + .T」という形で扱われます。

  • 7777 → 7777.T
  • 4053 → 4053.T

この Ticker を使って、

tk = yf.Ticker(ticker) fin = tk.financials 

と書くことで、

  • 売上高(total revenue)
  • 営業利益(operating income)

といった決算データを、Python側に引っ張って来れます。

コードの中では、

rev = find_row(fin.index, ["totalrevenue"]) op = find_row(fin.index, ["operatingincome"]) 

として、財務データの行ラベルの中から「売上」と「営業利益」に相当する行を探し、

"売上_今年": fin.loc[rev, this], "売上_前年": fin.loc[rev, prev], "営業_今年": fin.loc[op, this], "営業_前年": fin.loc[op, prev], 

という形で、今年と前年の2期分を取り出しています。

3-3. 判定は生データ、表示は億円と%

ここが今回のこだわりポイントです。

Pythonの内部では、まず生の数値(円単位)を扱い、 その後で、

  • 金額 → 億円(小数第2位まで)
  • 成長率 → %表示(小数第2位まで)

に変換しています。

def calc_growth(now, prev): if now is None or prev is None or prev == 0: return None return (now / prev - 1) * 100 

この関数で、

  • 売上成長率(%)
  • 営業利益成長率(%)

を計算し、

"営業利益成長率(%)": round(o_g, 2) if o_g is not None else None, 

というようにして Excel に書き出しています。

ここで重要なのは、

  • 合格判定は「生の営業利益データ」を使う
  • 見やすさのために、出力時だけ「億円」「%」に変換する

という設計にしたことです。


4. 「営業利益30%UP」と「赤字→黒字」の意味

4-1. なぜ“売上”より“営業利益”にこだわるのか

今回の合格判定は、非常にシンプルです。

# ① 営業利益 +30% 以上 if o_g is not None and o_g >= 30: ok = True # ② 赤字 → 黒字 if o_prev is not None and o_prev < 0 and o_this is not None and o_this > 0: ok = True 

売上成長率も計算はしていますが、「合格かどうか」の最終判定では、

  • 営業利益の伸び(30%以上)
  • 営業利益が赤字から黒字に転換しているか

の2点だけを見ています。

株さん: 「売上は“体重”、営業利益は“筋肉量”だと思ってください。」

売上が増えていても、

  • 広告費をバンバン使っているだけ
  • 粗利率が低くて、利益が残っていない

というケースはよくあります。

一方、営業利益がしっかり伸びている会社は、

  • ビジネスモデルが機能している
  • コスト構造が良い方向に変わっている
  • 価格決定力がついてきている

など、「ビジネスとしての強さ」が見えてきます。

4-2. 営業利益30%UPは「本当に強い会社しか通らないフィルター」

営業利益が30%成長というのは、決してぬるい条件ではありません。

  • 営業利益が 1億 → 1.3億
  • 5億 → 6.5億
  • 10億 → 13億

といったレベルの伸びです。

しかも、これは1年だけの話。 連続して30%成長している会社は、極めて少数です。

だからこそ、

  • 「なんとなく売上や株価が増えてる会社」ではなく
  • 「事業としてガチで成長している会社」を拾える

という意味で、営業利益30%UPはかなり強力なフィルターになります。

4-3. 赤字→黒字は「ストーリーが変わる瞬間」

もうひとつの条件、「赤字→黒字」も重要です。

IPO直後の会社は、

  • 成長投資を優先している
  • 研究開発費を積んでいる
  • 広告・人材・設備など、未来のためにお金を使っている

ことが多く、上場してから数年は赤字が続くケースも珍しくありません。

そこから、

  • 事業モデルが固まってきて
  • 売上が積み上がり
  • 固定費を吸収しきれるようになる

と、あるタイミングで「黒字化」します。

株さん: 「この“赤字→黒字”のタイミングは、市場の評価もガラッと変わるポイント。 『赤字のベンチャー』から『ちゃんと利益を出せる会社』に昇格する瞬間なんだ。」

だから、Python側では、

  • 前年の営業利益 < 0(赤字)
  • 今年の営業利益 > 0(黒字)

という条件を満たした銘柄も、自動的に「合格」として拾い上げるようにしています。


5. テーマ(系統)で“どんな物語の株か”をざっくり分ける

5-1. AI?宇宙?SaaS?ざっくりラベリング

新興株2020.py には、地味に効いている機能がもうひとつあります。 それが、銘柄ごとの「系統(テーマ)」を自動で推測する部分です。

THEME_KEYWORDS = { "AI": ["AI", "人工知能", "機械学習", "ディープラーニング"], "宇宙": ["宇宙", "衛星", "ロケット", "スペース"], "SaaS": ["SaaS", "クラウド", "サブスク"], "バイオ": ["バイオ", "創薬", "医薬", "細胞", "ゲノム"], "半導体": ["半導体", "シリコン", "ウエハ"], "Fintech": ["フィンテック", "決済", "キャッシュレス"], } 

銘柄名と市場の文字列を1つにくっつけて、

theme = classify_theme(name, market) 

という関数で、

  • AI
  • 宇宙
  • SaaS
  • バイオ
  • 半導体
  • Fintech

といったラベルを、最大2つまで付けるようにしています。

5-2. 「テーマ × 成長」で眺めると、ストーリーが見えてくる

これをやっておくと、抽出されたExcelを眺めたときに、

  • AI系で、営業利益30%UPの銘柄
  • 宇宙テーマで、赤字→黒字の銘柄
  • SaaSだけど、売上は伸びているのに利益がついてきてない銘柄

というように、「テーマ × 数字」の両面で眺められるようになります。

これは、

  • 次にどの業種・テーマに注目するか
  • ポートフォリオ全体で、テーマが偏っていないか

といった視点にも役立ってきます。


6. 2020上場株成長抽出①_YYYYMMDD.xlsx の中身イメージ

このコードを実行すると、最終的に

  • 成長合格(営業利益30%UP or 赤字→黒字)のシート
  • 全データ(すべての銘柄+成長率)
  • エラー一覧(うまく取れなかった銘柄)
  • script_log(スクリプト名とコード全文)

を持った Excel ファイルが出力されます。

ファイル名は、

2020上場株成長抽出①_YYYYMMDD.xlsx

という形式で、毎回日付付き。 同じ日に複数回実行すると、

  • 2020上場株成長抽出①_20251118.xlsx
  • 2020上場株成長抽出①_20251118 (2).xlsx

のように自動的に連番がふられます。

さらに、成長合格シートのコード列には、すべて株探へのハイパーリンクが付いています。

これにより、

  • Excelで一覧を見る
  • 気になった銘柄コードをクリック
  • 株探の詳細ページでチャートや四季報情報を確認

という流れが、ワンクリックでつながります。


7. このPDFとコードをどう活かしていくか?

7-1. 600銘柄 → 200銘柄 → 日々の監視リストへ

最初のPDFには、約600銘柄が載っています。 ここから、

  1. 営業利益30%UP & 赤字→黒字でふるいにかける(今回のコード)
  2. 合格銘柄を200前後まで絞り込む
  3. そこからさらに、出来高・チャートの形・ニュースなどで優先度をつける

というイメージです。

これを一気にやるのではなく、

  • まずは「成長」という軸だけでふるいにかける
  • 次の段階で「需給」「トレンド」を重ねていく

というのが、株さんのおすすめステップです。

7-2. 読者がこのPDFから学べること

このブログを読んでくださっている方にとって、 このPDFとコードは、単なる「ツール」以上の意味があります。

  • 2020年以降のIPO銘柄が、どんなテーマに偏っているのか
  • 成長している会社と、そうでない会社の違いは何か
  • 営業利益が30%伸びる会社の“数字の動き方”はどんな形か

このあたりを、実際の一覧+自分の目で確認できるからです。

もしよければ、PDFを手元に保存して、

  • 自分が持っている銘柄
  • 気になっているテーマ(AI、宇宙、SaaS…)

に色をつけたりメモを書き込んだりしながら、眺めてみてください。


8. これからどんな株を探していくのか?

最後に、これから探していきたい株のイメージを、株さんと整理しておきます。

8-1. 株さんが狙いたい「2〜10倍候補」の条件

  • 2020年以降のIPO銘柄(=新しい時代のビジネス)
  • 営業利益が30%以上のペースで伸びている or 赤字→黒字
  • ビジネスのテーマが、長期のトレンドと合っている(AI、SaaS、宇宙、バイオ…)
  • 時価総額や流動性が、まだ個人投資家でも入りやすい規模

これらをすべて満たす銘柄は多くありません。 だからこそ、Pythonでまず「候補選び」の部分を自動化し、 人間はそこから先の「物語を見る作業」に集中する、という役割分担をしていきます。

8-2. 第3話以降でやっていくこと

第3話以降では、

  • 今回の成長合格リストの中から、実際にいくつかの銘柄をピックアップし
  • チャート・出来高・ニュース・セクターなどを株さん目線で掘り下げていく
  • Python側でも、「勢い」や「トレンド」を数値化する実験をしていく

といった内容を予定しています。

今回のPDFと、そこから成長でふるいにかけたExcelは、 このシリーズ全体にとっての“地図兼カタログ”のような位置づけです。

ぜひ、ブックマークしてお手元に置いておいてもらえるとうれしいです。


おわりに ーー 読者へのお願いと次回予告

ここまで読んでいただき、ありがとうございます。

このシリーズは、

  • いくさん(個人投資家)
  • 株さん(元ゴールドマン日本株アナリスト/AI人格)
  • Gさん(この記事を書いている語り手)

の3人で進めている、少し変わった「Python × 日本株」の実験記です。

もし、

  • 「2020年以降のIPOをちゃんと見てみたい」
  • 「成長株の探し方を、ストーリー付きで学びたい」
  • 「PythonやExcelを使って、株の勉強をしてみたい」

と感じていただけたなら、

  • このページをブックマークしておく
  • 第1話とセットで読み返してみる
  • PDFをダウンロードして、自分でも印を付けてみる

といった形で、このシリーズを一緒に育ててもらえるとうれしいです。

次回、第3話では、

  • 今回の「成長合格」リストの中から、いくつかの銘柄をピックアップし
  • 株さんの視点で「なぜこの銘柄は面白いのか?」を深掘り
  • Pythonで“勢い”や“トレンド”をどう数値化していくか

といった内容に踏み込んでいく予定です。

引き続き、「GさんといくさんのPython成長ラボ」をよろしくお願いします。

« 第1話に戻る第3話(準備中)