AIプロンプトの書き方 › フォーラム › テキスト生成AIのプロンプト書き方 › Pythonプログラミング入門 › 返信先: Pythonプログラミング入門
エクセルの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