〜エラー地獄の旅と完全自動抽出スクリプトの誕生〜
今回の記事では、Python を使って「2020年1月以降に上場した企業」を完全自動で抽出しました。 その集計結果を PDF 一覧(2025年11月時点) としてまとめています。
この PDF は、いくさんとGさんが何度もエラーを乗り越えてようやく出力できた “今回の成果物” です。 次回以降の記事では、ここに掲載された企業から「どう絞るのか?」を一緒に深掘りしていきます。
📄 2020年1月以降に上場した企業一覧(PDF・2025年11月現在)
→ PDF を開く(新しいタブで表示)
- はじめに
- 第1章:最初の壁 —— PowerShell が Python を飲み込んでしまう
- 第2章:USB で Python を動かすという“特別な難しさ”
- 第3章:そもそも “上場日” が CSV に載っていない問題
- 第4章:タイムゾーン問題という落とし穴
- 第5章:保存せずにテストコードを実行できますか?問題
- Part1のまとめ
- 第6章:いよいよ本丸へ —— 「上場日をどう見抜く?」問題の核心
- 第7章:上場日の正体 —— 株価チャートは企業の「誕生日」を知っている
- 第8章:しかし問題発生 —— tzinfo がついている?ついていない?
- 第9章:やっと “2020年以降の企業” を判定できる状態に
- 第10章:いくさんの質問「これ、保存せずに試せない?」問題
- 第11章:抽出準備のすべてが整った
- 第12章:ついに迎えた “本番処理” —— 数千銘柄を一気にスキャンする瞬間
- 第13章:自動で進む探索の旅 —— Python が日本中の企業を見ていく
- 第14章:いよいよヒットが始まる —— 該当企業を1件ずつ記録していく
- 第15章:結果は自動的に Excel に保存される
- 第16章:シリーズ企画の見どころ —— いくさん流の銘柄選別術へ
- 第17章:Python が仕事の効率化を“根本から変える”という話
- 第18章:まとめ —— 自動化こそ最強の武器
- 第19章:完成した企業一覧を PDF で読めるようにする理由
- 第20章:いくさん流・分析シリーズの本当のスタート地点
- 第21章:今回のスクリプトが投資家としての “武器” になる理由
- 第22章:いくさんの投資哲学 —— “短期で2〜3倍を狙うための視点”
- 第23章:読者が手元にデータを持てる時代へ
- 第24章:「次回予告」—— どんな企業がチャンスかを一緒に解き明かす
- 第25章:結び —— Python は“投資力”を伸ばす最高の相棒になる
はじめに
「2020年以降に上場した企業をすべて知りたい」 ——このひと言から、今回の長い旅が始まりました。
株式投資では「どんな企業が新しく市場に入ってきたのか」を知ることは、とても重要です。 特に、2020年以降はコロナ禍やDX化、AI企業の急成長など、市場の流れが大きく変わりました。 いくさんの短期トレード戦略にとっても、新しい企業は “伸びしろ” のかたまりです。
しかし、この一覧を手作業で作ろうとすると── 想像以上に時間がかかります。
そこでGさんは提案しました。
「じゃあ Python で自動化しましょう。 2020年1月以降に上場した企業を、全部まとめて抽出する仕組みを作りましょう。」
こうして、「2020年上場企業抽出プロジェクト」が幕を開けました。
第1章:最初の壁 —— PowerShell が Python を飲み込んでしまう
最初に立ちはだかったのは、意外にも“Python 自身”ではなく、 PowerShell でした。
いくさんが画面を送ってくれたとき、そこには青い画面とたくさんのエラーが並んでいました。
import : 用語 'import' は認識されません。
これは、Python をやる人なら一度は見る “あるあるエラー” です。 でも初心者の方からすると、
「import が動かないってどういうこと?Python でしょ?」
と感じてしまうのは自然です。
◆ PowerShell と Python は「全く別の世界」
PowerShell(PS)は Windows の操作をする道具。 Python はプログラムを書く道具。
見た目が似ているせいで勘違いしやすいのですが、 PowerShell は Python 文法をまったく理解しません。
つまり、PowerShell の青い画面にいきなりこう書いても:
import pandas as pd
PowerShell はこう反応します。
import はコマンドレットとして認識されません
これは「あなた、PowerShell の世界に Python の呪文を投げないで!」という意味です。
◆ Python の世界に入る方法:`python` と入力するだけ
Python の世界に入ると、画面の左側が >>> に変わります。
PS C:\>→ PowerShell(Pythonの呪文は使えない)>>>→ Python(import や for が使える)
今回の大量エラーは、 「Python の世界に入らず import を実行してしまった」 というのが原因でした。
第2章:USB で Python を動かすという“特別な難しさ”
いくさんの環境では Python スクリプトや CSV、Excel は Dドライブ(USBメモリ) に入っています。
これはめちゃくちゃ便利な反面、 「PCによってドライブ名が変わる」 という問題を抱えています。
あるPCでは D:\python 別のPCでは E:\python また別のPCでは F:\python
——こういうことが普通に起きます。
だからGさんは、スクリプトの実行方法をこうデザインしました。
cd /d "%~dp0" python "スクリプト名.py"
これなら、USB がどのドライブでも 「スクリプトが置いてある場所」 を自動で使ってくれます。
Python の本体が C:\ にあっても、 USB が D:\ でも、 全く問題ありません。
いくさんが別PCで実行しても、 すべて同じように動く仕組みです。
第3章:そもそも “上場日” が CSV に載っていない問題
2020年以降に上場した企業を抽出したくても、 JPX の CSV には「上場日」が載っていません。
いくさん:「えっ?どうやって2020年以降を判断するの?」
Gさん:「株価チャートです。」
◆ 上場日を “推定“ する方法
実は、株価のチャートデータには 企業が上場して初めて株価がついた日(最古データ)が必ず含まれています。
これを利用すると:
最古の株価データの日付 = 事実上の上場日
となります。
この手法は、以前作った “上場5年以内企業抽出” スクリプトでも成功しています。 つまり、過去に実証済みの安全な方法です。
たとえば:
- 2018年上場 → 最古データは2018年のはず
- 2023年上場 → 最古データは2023年のはず
この最古日をゆっくり調べていけば、 「2020年以降に上場した企業」だけを正確に抽出できます。
第4章:タイムゾーン問題という落とし穴
次にいくさんを襲ったのがこれです。
can't compare offset-naive and offset-aware datetimes
これは初めて見ると「なんのこと?」となると思います。
◆ これは“2つの国の時間をそのまま比べようとしている”状態
Python の日付は2種類あります:
- ① 世界時間付きの日付(offset-aware)
- ② 世界時間なしの日付(offset-naive)
例えば:
2023-01-01T00:00+09:002023-01-01
この2つは、そのまま比べたら怒られます。
だから、次のように “時間の国籍” を外す必要があります:
first_date = first_date.replace(tzinfo=None)
これでどちらも「ふつうの日付」になり、 2020年以降かどうかを安全に判定できます。
初心者が絶対つまずく部分ですが、 今回いくさんは自分の力で突破しました。
第5章:保存せずにテストコードを実行できますか?問題
いくさん:「保存なしで実行できます?」
結論はひとつ。
PowerShellはPythonのコードを理解できないので、 保存しないテスト実行はできません。
PowerShell は「Windowsの操作の世界」。 Python は「プログラミングの世界」。
この2つは言語が違います。 だから、PowerShell に Python を直接貼ると全部エラーになります。
安全に試すには:
- test_2020上場_消す.py
のような“テスト用スクリプト”を作って使うのが最善です。
Part1のまとめ
ここまでの内容で、2020年以降に上場した企業を抽出するための前提知識がすべて整いました。
- PowerShellとPythonの違い
- USB実行で起きる問題と対策
- 上場日は株価データから推定する方法
- タイムゾーン問題の正体
- テストコードは保存しないと動かない理由
いよいよ Part2 からは、 実際の抽出ロジックの核心 に入っていきます。
2020年以降に上場した企業を“自動で見つける”ための本番作業です。
そして最終的には、 一覧PDFを作り、 2025年11月時点の「新興株データベース」をブログで公開するまでを目指します。
第6章:いよいよ本丸へ —— 「上場日をどう見抜く?」問題の核心
PowerShell も、USB実行の問題も、タイムゾーン問題もクリアした。 いくさんとGさんの視界の先には、ついに今回のテーマの中心が見えてきます。
「2020年以降に上場した企業をどうやって判定するのか?」
結論から言えば、この判定は “株価データの最古日” = 実質上場日 で決まります。
でも、ここには初心者の方が絶対に混乱する “技術的な理由” があるため、 Gさんは一度、いくさんと一緒にゆっくり噛み砕いて説明していきました。
第7章:上場日の正体 —— 株価チャートは企業の「誕生日」を知っている
企業が上場すると、最初の株価がつきます。 その瞬間から「チャート」が生まれます。
だからチャートの最古データを調べれば:
- 2019年上場 → 2019年のデータが一番古い
- 2023年上場 → 2023年のデータが一番古い
と自動的にわかるのです。
これを Python で取り出す方法は非常にシンプルです。
◆ yfinance の history(period=”max”) がすべてを教えてくれる
Python では、株価データを次のように呼び出します:
hist = tk.history(period="max")
この hist には、最初のデータから最新データまで、 すべてが入っています。
そして最古の日付は:
first_date = hist.index.min()
これだけで取得できます。
◆ Python は“企業の誕生日”まで教えてくれる
株価データの最初の日付が、その企業が市場に登場した日。 つまり「上場日」そのものです。
第8章:しかし問題発生 —— tzinfo がついている?ついていない?
ここで、また例のエラーが顔を出しました。
can't compare offset-naive and offset-aware datetimes
これは日付同士を比べるときの “Python独特のエラー” です。
初心者の方でもイメージできるように、 Gさんはこんなたとえ話をいくさんにしました。
◆ たとえ話:国籍が違うと比較できない
・「2020年1月1日(日本時間)」 ・「2020年1月1日(UTC)」
表記上同じでも、Python からすれば別物です。
時間の後ろに「+09:00」みたいな国籍(タイムゾーン)がついていると、 国籍が違う者同士は比べられません。
だから比較前に、こうします:
first_date = first_date.replace(tzinfo=None)
すると「国籍のない日付」に変わり、
これで境界日の datetime(2020, 1, 1) と比べられるようになります。
第9章:やっと “2020年以降の企業” を判定できる状態に
このタイムゾーン問題をクリアしたことで、 ついに2020年以降上場企業の判定ができるようになりました。
判定式はとてもシンプルです:
if first_date >= datetime(2020, 1, 1):
これで「2020年1月1日以降に上場した企業」がわかります。
…ここに到達するまでに、 実は非常に多くの壁がありました。
第10章:いくさんの質問「これ、保存せずに試せない?」問題
ここでいくさんが Gさんに質問しました。
「このテスト、保存せずに PowerShell から実行できます?」
答えは、残念ながら No です。
◆ PowerShell は Python の世界ではない
PowerShell には Python のルールがなく、 import、for、if、try… どれも理解できません。
だから、次のようなコードを PowerShell に貼っても:
try:
tk = yf.Ticker(ticker)
PowerShell はこう返します:
try: はコマンドレットとして認識されません
つまり、PowerShell は 「Pythonコードはスクリプトとして保存しないと実行できない」 という構造なのです。
◆ だから “test用スクリプト” が必要になる
いくさんのように 「すぐ試したい」「まず1件HITするか見たい」 という場合には、 次のような小さなスクリプトを作るのが最短です。
test_2020上場_消す.py
そして実行して、 結果を見たらすぐ削除する。
この流れが、最も安全で確実です。
第11章:抽出準備のすべてが整った
ここまでで整ったこと:
- PowerShell と Python の違いを理解した
- USB 環境でもスクリプトが確実に動くようになった
- 上場日を “株価の最古データ” から推定できるようになった
- タイムゾーン問題の回避方法も学んだ
- テストスクリプトの正しい使い方も理解した
いよいよ次の段階、 実際に2020年以降に上場した企業を大量に抽出する本番処理 に入ります。
ここからは、Python が本領発揮。 企業コードを1つずつ読み込み、 yfinance からデータを取り、 上場日を判断し、 「該当企業」を次々と見つけていきます。
その途中には「進捗パーセンテージ」や「50件ヒットごとの報告」も挟まれ、 まるで探索ゲームのように楽しく進むように設計されています。
Part3 では、この “完成した抽出スクリプト” の全貌と、 2020年以降企業データをどう料理していくかという シリーズの未来 を語ります。
第12章:ついに迎えた “本番処理” —— 数千銘柄を一気にスキャンする瞬間
これまで設定、動作テスト、エラー回避、タイムゾーン問題…… あらゆる障害をいくさんと一緒に乗り越えてきました。
そしていよいよここからが今回の物語のクライマックスです。
「2020 年以降に上場した企業を、Python で完全自動抽出せよ。」
この巨大ミッションを実現するために、Gさんといくさんが作り上げたものは、 いわば “企業探索用レーダー” のようなスクリプトでした。
・銘柄コードを一つずつ読み込む
・企業のチャートデータを取りに行く
・最古データ日=上場日を割り出す
・2020 年以降なら “該当企業” として記録
・進捗 10% ごとにパーセンテージを表示
・ヒット 50 件ごとに「報告」
このように、ただ機械的に処理するだけでなく “進捗が見える化” されているので、 長時間の処理も安心して見ていられる構造になっています。
第13章:自動で進む探索の旅 —— Python が日本中の企業を見ていく
スクリプトを実行すると、淡々と、しかし確実に動き始めました。
📥 CSV 読み込み → 銘柄数の確認 → 企業スキャン → 上場日判定
株価データはすべて Yahoo Finance から取得しています。 このおかげで、企業のチャート最古日を手作業で調べる必要はなく、 Python が自動で全部見てくれます。
◆ 機械が企業の“生まれた年”を読み解く光景
tk = yf.Ticker(“XXXX.T”) で企業のデータを呼び出し、 history(period=”max”) で最古のチャートを取得。
そこから:
first_date = hist.index.min()
これだけで 「この企業はいつ市場に登場したか?」 が分かる仕組み。
本来なら、各企業の IR 情報から「上場年月日」を調べる必要があるのですが、 それを 1,000 社以上も手作業でするのは不可能。
だから Python が必要なのです。
第14章:いよいよヒットが始まる —— 該当企業を1件ずつ記録していく
最初のヒットが出たとき、 画面にこう表示されます:
🔍 HIT: 1件目 コード: 1234 ticker: 1234.T 推定上場日: 2021-03-15
いくさん「おおっ!ついに来た!」 Gさん「第一村人発見ですね😎」
◆ ヒット 50 件ごとに “報告”
Pythonが大量スキャンしている最中、ただ待つのは暇。 待っている間に状況が分からないと不安になります。
そこで今回は:
- ヒット 50 件ごとに → 「50件達成!」
- 進捗が 10% 進むごとに → 「Processing: 40%」
という「進捗メーター」を装備しました。
これで探索ゲームのような雰囲気で見守れるようになっています。
第15章:結果は自動的に Excel に保存される
今回のスクリプトは、 ただ画面に表示するだけでは終わりません。
最終結果は Excel(.xlsx)に保存されます。
もちろん、列はブログ用に最適化済み。
◆ 出力される列(ブログ掲載に必要な情報)
- コード(4桁)
- tickerコード(XXXX.T)
- 銘柄名
- 市場(グロース/スタンダード/プライムなど)
- 終値
- 推定上場日
実際のブログで使う PDF は、 この Excel を「保存 → PDF化」すればそのまま使えます。
企業一覧を PDF で見せると、 読者の信頼度も一段階アップします。
第16章:シリーズ企画の見どころ —— いくさん流の銘柄選別術へ
今回の記事で公開するのは、 「2020年以降に上場した企業の一覧」 です。
しかし、これはあくまでも “スタート地点”。
Gさんといくさんが描いている全体像はもっと大きい。
◆ 今後のシリーズがめちゃくちゃ重要
・企業のどこを見る?
・グロース市場の強みと弱み
・チャートの勢いをどう測る?
・資金流入(出来高)で何が分かる?
・短期で伸びる銘柄の特徴
これらを “実際の銘柄リストを見ながら” 解説していくことで、 Python × 株式投資 × データ分析の三位一体シリーズになる予定です。
つまり今回の記事は、 シリーズ第1話:基盤の完成 です。
第17章:Python が仕事の効率化を“根本から変える”という話
今回のプロジェクトの本質は、 単に「企業リストを作ること」ではありません。
いくさんが感じていた “作業の重さ” をなくし、 作業の 8〜9割を自動化することにあります。
手入力で上場日を調べる必要はもうない。
Excel に手書きする必要もない。
数百社を1時間かけて調べる必要もない。
いくさんの作業は、 クリック1つ → 自動抽出 → Excel完成 → PDF化してブログに貼る という流れに変わりました。
これは、これから先の株プロジェクト全体にとって “革命” です。
第18章:まとめ —— 自動化こそ最強の武器
今回の旅路を振り返ると、 いくさんと Gさんは本当に多くの壁を越えてきました。
- PowerShell と Python の違いを知った
- USB Python 環境を調整した
- 上場日推定ロジックを理解した
- タイムゾーン問題を解決した
- テストスクリプトで安全確認
- 進捗表示つき完全自動抽出ツールが完成した
そして、今あなたの手元には:
「2020年以降に上場した企業を完全自動で抽出するスクリプト」
という、ブログシリーズ第1話を飾るにふさわしい成果物が誕生しました。
次回以降の記事では、この企業一覧を実際に分析し、 「勝てる銘柄をどう見抜くか?」 という、いくさんの十八番とも言える分野に踏み込んでいきます。
Python の力を味方にして、読み手の投資力を底上げするシリーズ。 ぜひ楽しみにしていてください。
第19章:完成した企業一覧を PDF で読めるようにする理由
今回抽出した「2020 年 1 月以降に上場した企業一覧」は、 ブログ読者の “未来の投資判断” を支える基礎データになります。
そこでいくさんが選んだ出力形式は PDF。
◆ なぜ PDF なのか?
- スマホで拡大しても文字がつぶれない
- 印刷しても見やすい
- Excel だと読者が開けない可能性がある
- 配布フォーマットとして最もトラブルが少ない
特に投資ブログでは PDF が圧倒的に相性が良く、 「資料として保存して読み返せる」というメリットがあります。
読者が PDF を見ながら “次にどんな銘柄に注目するか?” と考えられるわけです。
今回いくさんは、抽出した Excel を PDF 化し、ブログ本文に添付する形で公開します。 この PDF が、次のステップに進む “教材” になります。
第20章:いくさん流・分析シリーズの本当のスタート地点
今回の記事は「企業一覧をつくる」だけと思われがちですが、 実はこのシリーズ全体の 第1話にすぎません。
ここからが本番です。
◆ 次回以降の分析シリーズでは、こう進めていきます
- 企業一覧をもとに、まず “候補” を広げる
- 企業の市場(グロース/スタンダード)ごとの特徴を理解する
- チャートの勢い(モメンタム)をスコア化する
- 出来高・売買代金の流入で「資金の入り方」を読む
- 短期で伸びる銘柄のチャートパターンを学ぶ
- 最終的に “買うべき数銘柄まで絞り込む”
さらに分析は Python と Excel の両方を使い、 データ × チャート × ファンダを組み合わせて総合評価していきます。
つまり今回の PDF は、言ってみれば データの地図 です。 この地図を広げながら、Gさんといくさんの旅が第2話・第3話へと続いていきます。
第21章:今回のスクリプトが投資家としての “武器” になる理由
2020年以降に上場した企業というのは、 まだ企業としての若さ・伸び代・勢い が残っているケースが多いです。
・技術革新
・新規市場の開発
・勢いのある成長曲線
こうした “若い企業” が大きく伸びるのは、 株式市場ではよくある話です。
◆ だからこそ、この一覧には価値がある
「どの企業が成長曲線に乗っていくか?」 これはデータから読み解けます。
Python の抽出はただの作業ではなく、 将来の成長株を見つけるための「土台作り」です。
投資は準備が9割。 その準備が今回の Excel → PDF という形で完成したわけです。
第22章:いくさんの投資哲学 —— “短期で2〜3倍を狙うための視点”
シリーズ読者のために、少しだけいくさんの投資スタンスを紹介しておきます。
◆ いくさん流の重要視ポイント
- グロース市場の「勢い」を読み取る
- 出来高の変化からお金の流入を察知する
- 短期で株価が伸びるパターンに敏感
- ニュースよりチャートを重視
- 業績より需給(需要と供給)にも目を向ける
- 上場したての企業ほど“歪み”が出やすくチャンスが増える
今回の “2020年以降上場” というテーマは、 まさにいくさんの得意分野です。
第23章:読者が手元にデータを持てる時代へ
ブログで PDF を配布するという発想は、 読者の「行動」を変える力 を持っています。
多くの投資ブログは「文章」だけで終わりますが、 いくさんのブログは違います。
・PDF化した企業リスト
・チャート分析シリーズ
・Pythonでの自動化解説
すべて「手を動かすための教材」になっているのが、 このシリーズの最大の魅力です。
第24章:「次回予告」—— どんな企業がチャンスかを一緒に解き明かす
次の記事(第2話)ではいよいよ、 2020年以降に上場した企業の中から “チャンス銘柄を見つける方法” に踏み込んでいきます。
◆ 第2話のテーマ(予定)
- 市場区分(グロース・スタンダード・プライム)の性格
- チャートの “勢い” を数値化する方法
- 出来高増加が意味する“資金の流れ”
- 急騰前に現れるシグナルとは?
- 初心者でも再現できるスクリーニング術
つまり「企業一覧(今回のPDF)」を見ながら、 次回は“どう選ぶか” に入っていきます。
ブログシリーズはまだまだ序章です。 読者の方がワクワクする流れになるはずです。
第25章:結び —— Python は“投資力”を伸ばす最高の相棒になる
今回の物語を通して、いくさんは Python の力を使い、 わずか数分〜数十分で数千銘柄を分析できる環境を手に入れました。
これは投資家としての “戦闘力” が何倍にも跳ね上がった瞬間です。
そしてブログ読者も、このシリーズを読むことで、 いくさんと同じ視点・同じデータを使いながら成長していけるようになります。
第2話以降も、どうぞお楽しみに。
今回 Python で抽出した「2020年1月以降に上場した企業一覧」は、 下記のPDFにまとめています。市場区分・コード・銘柄名・上場推定日の順に整理し、 2025年11月時点の最新データとしてまとめたものです。
📄 2020年1月以降に上場した企業一覧(PDF・2025年11月現在)
→ PDF を開く(新しいタブで表示)
この記事は「上場企業スクリーニング」の第1話でした。 次回は、この一覧から“どうやって狙い目を絞り込むか?”を、 Gさんといくさんで一緒に深掘りしていきます。

