質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

302閲覧

python,取得した複数データを%表示の状態にして、平均値をとる方法

takachan

総合スコア5

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2022/05/03 12:29

編集2022/05/03 22:22

pythonで複数株価のデータを取得しました。そのデータを%表示にして、取得したデータ数の各日付の平均値をとる方法を模索しています。

例えば、画像のように5つの株価データを%表示にして取得しました。5銘柄なので、5銘柄の各日付で平均値を取得してCSVに落としたいです。

6銘柄のデータを取得したら、6銘柄の各日付の平均値をとりたいです。

どのようにしたらいいですか。

イメージ説明

python

1コード 2!pip install yfinance fredapi 3 4import sys 5import datetime as dt 6from pandas.tseries.offsets import BDay 7 8import numpy as np 9import pandas as pd 10 11import yfinance as yf 12from fredapi import Fred 13 14import matplotlib.pyplot as plt 15import seaborn as sns; sns.set() 16 17def get_stock_price(symbol_list, date_range): 18 19 df_all = pd.DataFrame() 20 21 for symbol in symbol_list: 22 print('取得中: ' + symbol) 23 df = yf.download( 24 tickers=symbol, 25 start=dt.datetime.strftime(date_range[0], '%Y-%m-%d'), 26 end=dt.datetime.strftime(date_range[1], '%Y-%m-%d')) 27 df.index = pd.to_datetime(df.index) 28 df_all = pd.concat( 29 [df_all, df.rename( 30 columns={'Adj Close': symbol}).loc[:, symbol]], 31 axis='columns', sort=False) 32 33 return df_all 34 35date_range = (dt.date(2014, 4, 21), dt.date(2022, 3, 28)) 36 37symbol_list_JP = ['8103.T', '1852.T', '7203.T','4246.T', '5208.T'] 38 39stock_price_JP = get_stock_price(symbol_list_JP, date_range).fillna(method='ffill').dropna() 40 41stock_price_JP.pct_change() 42 43stock_price_JP.pct_change().bfill(inplace=True) 44 45stock_price_JP.pct_change().to_csv('stock_price_JP.pct_change().csv')
monahaku👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/05/03 12:43

一日ごとの平均(2014/4/22 の5銘柄の平均値、2014/4/23 の平均値、... )を求めるのでしょうか?
takachan

2022/05/03 12:47

はい、1日ごとの平均値をとりたいです。 2014/4/22の平均値 2014/4/23の平均値 という、 感じです。
guest

回答1

0

ベストアンサー

pct_change() の結果を stock_price_JP_pct_change というデータフレームに入れて、mean() で平均値を求めています。列名を「平均」にしていますが、適宜変更して下さい。また、CSV ファイルの名前も少し変更しています。

python

1stock_price_JP.pct_change().bfill(inplace=True) 2 3# 4stock_price_JP_pct_change = stock_price_JP.pct_change() 5stock_price_JP_pct_change['平均'] = stock_price_JP_pct_change.mean(axis=1) 6stock_price_JP_pct_change.to_csv('stock_price_JP_pct_change.csv')

投稿2022/05/03 13:09

melian

総合スコア19618

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takachan

2022/05/03 13:22

できました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問