返信先: Pythonプログラミング入門

#229
ドラゴンパンダドラゴンパンダ
キーマスター

エクセルのB列にある証券コードを読み込んで、株価のデータを
エクセルのG列に記載するようなPythonのコードを書きたいのですが、どうもうまくいきません。
(本当はその他のデータも随時取り込みたいのですが。。。)

yfinanceのライブラリーを使っての取得で考えています。

まずうまくいかないのが、B2列以降の証券コードの読み込みです。

という助けてメールがあったのでここでAIによる解決方法を記載していきたいと思います。

使用AI:Microsoft Bing COPIROT

プロンプト文:Pythonでyfinanceのライブラリを使って処理してください。ファイルダイアログボックスでExcelファイルを選択できるようにしてください。ExcelファイルにあるB列のB2から最終行までの証券コードを取得して一銘柄ずつ 証券コード 会社名 単位売買価格 単元株数 株価(円)時価総額(百万円)発行済み株式数(株)をPrintしてください。

結果

何回かエラーが出て、エラーを修正してとお願いしたら、以下のコードができました。ダイアログボックスがつくられなかったりとしましたが、補正をお願いして以下のものができました。名証プレミア のものとかはエラーで取得できませんでしたね。たぶん、yfinanceのライブラリだと東証だけなのかな。数値が正しいかどうかは検証していません。株価: None とかになっているから少しちがうんだろうな。でも、ここまでくれば、できるでしょう。

import pandas as pd
import yfinance as yf
from tkinter import Tk
from tkinter.filedialog import askopenfilename

# ダイアログボックスでExcelファイルを選択
Tk().withdraw() # ダイアログボックスを表示するためのルートウィンドウを隠す
filename = askopenfilename() # ファイルダイアログを表示し、選択したファイルのパスを取得

# Excelファイルを開く
df = pd.read_excel(filename)

# B列の証券コードを取得
tickers = df.iloc[:, 1].dropna().apply(str).tolist() # B列はPythonのインデックスでは1になります

# 各証券コードについて情報を取得
for i in range(len(tickers)):
ticker = tickers[i]
try:
ticker = ticker + ‘.T’ # 証券コードの後に’.T’を追加
stock = yf.Ticker(ticker)
info = stock.info

# 必要な情報を取得
会社名 = info.get(‘longName’)
単位売買価格 = info.get(‘ask’)
単元株数 = info.get(‘sharesOutstanding’)
株価 = info.get(‘regularMarketPrice’)
時価総額 = info.get(‘marketCap’)
発行済み株式数 = info.get(‘sharesOutstanding’)

print(f’証券コード: {ticker}, 会社名: {会社名}, 単位売買価格: {単位売買価格}, 単元株数: {単元株数}, 株価: {株価}, 時価総額: {時価総額}, 発行済み株式数: {発行済み株式数}’)
except Exception as e:
print(f’証券コード: {ticker} の情報取得中にエラーが発生しました: {e}’)
break

 

タイトルとURLをコピーしました