Pythonプログラミング入門

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #136 返信
    ドラゴンパンダドラゴンパンダ
    キーマスター

    このトピックでは、Pythonプログラミング言語の基礎からスタートし、初心者向けに具体的なプロンプト(コンソール入力やメッセージ表示)の使い方を学ぶ場です。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

     

    #230 返信
    ドラゴンパンダドラゴンパンダ
    キーマスター

    本日の株価が上手く取得できなかったので、株価だけをもう一度やり直した。単位売買価格 単元株数 も違うものを指定している気もするが、あとは調べてやってみてくださいね。
    import pandas as pd
    import yfinance as yf
    from tkinter import Tk
    from tkinter.filedialog import askopenfilename

    # ファイルダイアログからファイル名を取得
    Tk().withdraw()
    filename = askopenfilename()

    # Excelファイルを読み込み、B列のデータを取得
    df = pd.read_excel(filename, usecols=’B’)
    codes = df.iloc[1:].values.flatten()

    # 各証券コードの株価を取得して表示
    for code in codes:
    ticker = yf.Ticker(str(code) + “.T”)
    todays_data = ticker.history(period=’1d’)
    company_name = ticker.info[‘shortName’]
    print(f”本日の {company_name} ({code}) の株価: {todays_data[‘Close’][0]}”)

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: Pythonプログラミング入門
あなたの情報:




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