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

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

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

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

Q&A

解決済

1回答

739閲覧

python,取得したデータを加工して、CSVに落とす日付を「ユーザー定義」から「日付」に直す方法

takachan

総合スコア5

Python

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

0グッド

0クリップ

投稿2022/05/04 11:40

取得した株価データを加工して、%表示で平均を出すようにしました。CSVに落とすと、日付の部分が「ユーザー定義」で落ちてきます。CVSで落とすときに日付を「日付」で様式は例えば「2022/5/3」に直してCSV落とす方法を模索しています。

加工したデータは画像のように「ユーザー定義」になっています。

イメージ説明

python

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下の様にすれば日付の様式を %Y/%m/%d に変換して CSV に落とせます。ただ、こちらの手元には Excel が使える PC や Mac がないので、そちらで Excel に読み込んで確認してみて下さい。

python

1# stock_price_JP_pct_change.to_csv('stock_price_JP_pct_change.csv',encoding='utf_8_sig') 2(stock_price_JP_pct_change 3 .rename_axis('').reset_index() 4 .to_csv('stock_price_JP_pct_change.csv', 5 encoding='utf_8_sig',date_format='%Y/%-m/%-d',index=False))

投稿2022/05/04 12:08

melian

総合スコア19712

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

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

takachan

2022/05/04 12:34

ご回答、ありがとうございます。 画像を張れないのですが、色々試して確認をしましたが、最後の行を下記に置き換えましたが、日付部分は「ユーザー定義」のままでCSVに落ちてきます。 (stock_price_JP_pct_change .rename_axis('').reset_index() .to_csv('stock_price_JP_pct_change.csv', encoding='utf_8_sig',date_format='%Y/%-m/%-d',index=False))
melian

2022/05/04 12:42

ダメでしたか、、それでは date_format='%Y/%m/%d' にするとどうなるでしょうか? この場合は 2014/04/21 などという表記になってしまいますが。。。
takachan

2022/05/04 15:15

ありがとうございます。日付になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問