LoginSignup
0
1

More than 3 years have passed since last update.

【ADRリストを作りたい】 ~三部作 最終話~ 見やすいADRリストの作成

Posted at
  • 忙しくてADR銘柄を比較してる時間がない,,
  • リストがあれば、すぐ選べるのに,,
  • 資金少ないし、失敗したくないなぁ,,



そんな方でも大丈夫です!
最後まで読んでいただくと、時価総額順業種別指定額範囲で検索できる、ADR銘柄のリストの作り方がわかります。
最終話では楽天とSBIのADR一覧を結合して見易くしていきます。


〜目次〜
1. データフレームの結合と編集
  1-1. 全業種を含むデータの結合
  1-2. 楽天の業種を選別
  1-3. sbiの事業内容を選別
2. 検索
  2-1. 不要なデータの削除
  2-2. it関連の中から時価総額で検索
3. 終わりに

1. データフレームの結合と編集

1-1. 全業種を含むデータの結合

# 楽天の抽出したADR+SBIの抽出したADRをouter結合
SBI_RKT_ADR_df_out = pd.merge(moto_RKT_ADR_df, moto_SBI_ADR_df, on=["時価総額_ドル", "ADR_ティッカー"], how="outer")
SBI_RKT_ADR_df_out_fil = SBI_RKT_ADR_df_out.fillna("-")
SBI_RKT_ADR_df_out_fil_series = SBI_RKT_ADR_df_out_fil[["ADR_ティッカー", "時価総額_ドル", "業種", "事業内容"]].sort_values(by="時価総額_ドル")

outer結合することで、重複した要素を一つにします。
例えば、「1,2,3」+「3,4,5」=「1,2,3,4,5」といった感じです。

説明が長くなりますが、業種は楽天のデータ・事業内容はSBIのデータ。
楽天とSBIどちらでも取扱割れている銘柄は、業種列・事業内容列ともにデータがあります。
「NVS」は楽天で購入可能。「ASML」はSBIで購入可能。「MOGU」はどちらでも購入可能。

出力結果
ADR_ティッカー 時価総額_ドル 業種: 事業内容
3 NVS 194267242000 医薬品: NO DATA
229 MOGU 9500000 小売: 衣料品オンラインプラットフォームを運営している中国(ケイマン籍)の会社。
230 ASML 263548684000 NO DATA: オランダの半導体製造装置メーカー


1-2. 楽天の業種を選別

# 必要のない業種は削除
SBI_RKT_ADR_df_out_fil_series_it = SBI_RKT_ADR_df_out_fil_series.query("業種 != ['その他', 'その他製造', '食品・飲料', '電機・電力・エネルギー', '金融(銀行)', '金融(その他)', '運輸', '航空機・宇宙', '自動車・自動車関連', '航空', '石油・ガス・パイプライン', '医薬品(バイオテクノロジー)', '医薬品', '医療・医療サービス', '化学', 'ホテル・モーテル', 'サービス', 'エンターテイメント・メディア', '小売', '鉄鋼・鉱業', '金融(保険)', '金融(証券)', 'トイレタリー・ヘルスケア', 'バイオ', 'コンピュータ関連', '半導体関連', '紙・パルプ']")

私が検索したかった業種は、IT関連の業種です。
ですので、関連しない業種は !=[ ] で非表示にします。

出力結果
ADR_ティッカー 時価総額_ドル 業種 事業内容
251 JFU 16198000 NO DATA ケイマン諸島籍のITソリューションを提供している企業
225 JRJC 30525000 ソフトウェア・ソフトウェアサービス NO DATA
223 LIZI 37474000 ソフトウェア・ソフトウェアサービス NO DATA
... ... ... ... ...
25 INFY 80685368000 ソフトウェア・ソフトウェアサービス インドの大手ソフトウェア受託開発企業
18 CHL 112656107000 通信関連 香港の携帯電話サービス最大手
230 ASML 263548684000 NO DATA オランダの半導体製造装置メーカー

1-3. sbiの事業内容を選別

# 事業内容列から欲しいワードの入っている行のみ残す
IT_job = SBI_RKT_ADR_df_out_fil_series_it[SBI_RKT_ADR_df_out_fil_series_it['事業内容'].str.contains('ソフトウェア|オンライン|インターネット|IT|通信|アプリ')]
IT_job2 = IT_job[['ADR_ティッカー', '事業内容']]

# 残したのを[ADR_ティッカー]列で結合
IT_job3 = pd.merge(SBI_RKT_ADR_df_out_fil_series_it, IT_job2, on=["ADR_ティッカー"], how="left")

検索したいのは、IT関連の「フトウェア|オンライン|インターネット|IT|通信|アプリ」のワードが含まれる事業内容です。
例えば「SFUN」の事業内容_Y列だと、検索したいワードが含まれていないのでNaNになっています。

出力結果
ADR_ティッカー 時価総額_ドル 業種 事業内容_x 事業内容_y
6 SFUN 112565000 NO DATA 中国(ケイマン籍)の不動産情報サイト運営会社 NaN


2. 検索

2-1. 不要なデータの削除

# 指定した列のどちらにも欠損値NaNがある行のみを削除する
SBI_RKT_ADR_df_out_fil_series_it2 = IT_job3[['ADR_ティッカー', '時価総額_ドル', '業種', '事業内容_y']].fillna("NO DATA")
SBI_RKT_ADR_df_out_fil_series_it3 = SBI_RKT_ADR_df_out_fil_series_it2[SBI_RKT_ADR_df_out_fil_series_it2[["ADR_ティッカー", "時価総額_ドル", "業種", "事業内容_y"]] != "NO DATA"]
SBI_RKT_ADR_df_out_fil_series_it4 = SBI_RKT_ADR_df_out_fil_series_it3.dropna(subset=["業種", "事業内容_y"], how='all')

楽天の業種、SBIの事業内容のどちらともITとは無関係のデータを削除します。
ですので、どちらもNaNになっている行は表示されません。

出力結果
ADR_ティッカー 時価総額_ドル 業種 事業内容_y
0 JFU 16198000 NaN ケイマン諸島籍のITソリューションを提供している企業
1 JRJC 30525000 ソフトウェア・ソフトウェアサービス NaN
2 WIMI 33200000 ソフトウェア・ソフトウェアサービス NaN
3 LIZI 37474000 ソフトウェア・ソフトウェアサービス NaN
4 BLCT 44096000 ソフトウェア・ソフトウェアサービス NaN
... ... ... ... ...
83 BIDU 73737465000 ソフトウェア・ソフトウェアサービス NaN
84 INFY 80685368000 ソフトウェア・ソフトウェアサービス インドの大手ソフトウェア受託開発企業
85 CHL 112656107000 通信関連 NaN
86 SE 122856716000 ソフトウェア・ソフトウェアサービス パソコンやモバイル機器向けのオンライン・デジタル・コン...
87 SAP 148332102000 ソフトウェア・ソフトウェアサービス NaN
74 rows × 4 columns


2-2. it関連の中から時価総額で検索

# 時価総額を価格の範囲を指定して抽出
SBI_RKT_DF = SBI_RKT_ADR_df_out_fil_series_it4.query("40000000 <= 時価総額_ドル <= 150000000")

楽天とSBIからADR銘柄を取得し、IT関連で絞って、時価総額の範囲を指定して表示をすることができました。

出力結果
ADR_ティッカー 時価総額_ドル 業種 事業内容_y
4 BLCT 44096000 ソフトウェア・ソフトウェアサービス NaN
5 MFH 73412000 インターネットサービス NaN
6 SFUN 112565000 NaN NaN
7 LAIX 120566000 ソフトウェア・ソフトウェアサービス 中国(ケイマン籍)の人工知能(AI)関連テクノロジー企業。AI搭載のモバイルアプリケーション...
8 SY 129740000 ソフトウェア・ソフトウェアサービス 中国(ケイマン籍)の美容クリニックに関するオンラインサービス会社
9 DAO 145488000 ソフトウェア・ソフトウェアサービス NaN


3. 終わりに

最後まで読んで頂きありがとうございました。
このコードが、検索や比較の役に立てば幸いです。
まだまだ初学者ですので、もっと良い記述の方法があればご指摘お願い致します!

0
1
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
0
1