日本株、米国株の日足と週足データを取得する。

#1 この記事は何？

日本株、米国株の日足と週足データを取得する方法を方法を説明します。


#2 どのようにするの？

日足株価データは、pandas_datareaderを使います。pandas_datareaderがインストールされていない場合はpipコマンドにてインストールができると思います。[インストール方法はこちら](https://qiita.com/HolaSoyNaoki/items/3315f7247c908e95e6a5#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95)

週足データは上記で取得した日足データをresample('W')を行い取得します。下記に記載したコードを実行させてみてください。

<b>週末の株価データを単純に取得する場合は、　dftmp=dftmp.resample('W').last()を使えばOK</b>


```python:example.py
import pandas
from pandas_datareader import data as pdr
import yfinance as yfin
yfin.pdr_override()


#本日から過去1年分の株価データを取得する関数。stocknumには銘柄番号を入れる。
def get_kabuka(stocknum):

    Y = datetime.datetime.today().year
    M = datetime.datetime.today().month
    D = datetime.datetime.today().day
    start=datetime.datetime(Y, M-1, D)
    end=datetime.datetime(Y, M, D)

    #日本株の場合は"銘柄番号.T"で株価データが取得できる。
    snum=stocknum +".T" if str(stocknum).isnumeric()==True else stocknum
    #df=web.DataReader(snum ,'yahoo',start,end) #株価データを取得する。しかしながら2021/7/2以降使用不可
    df = pdr.get_data_yahoo(snum, start, end) #株価データ(日足)を取得する。

    d_ohlcv = {'Open': 'first','High': 'max','Low': 'min','Close': 'last','Volume': 'sum'}
    dfw = df.resample('W-MON', closed='left', label='left').agg(d_ohlcv) #株価データ(週足)を取得する。
    
    
    return {"day":df,"week":dfw}


#STOCKNUM='VOOV'#米国株例
STOCKNUM='1570' #日本株例

#本日から過去1年分の株価データを取得する
df= get_kabuka(STOCKNUM)

print("#日足の株価を取得する")
display(df["day"]) #日足の株価を取得する
print("#週足の株価を取得する")
display(df["week"]) #週足の株価を取得する
```

実行結果は下記の通りになります。

```console:example.py

#日本株'1570'の場合

[*********************100%***********************]  1 of 1 completed
#日足の株価を取得する
Open	High	Low	Close	Adj Close	Volume
Date						
2021-06-29	15850.0	15900.0	15650.0	15740.0	15740.0	4677700
2021-06-30	15830.0	15980.0	15700.0	15730.0	15730.0	4360694
2021-07-01	15780.0	15780.0	15540.0	15620.0	15620.0	3344471
2021-07-02	15620.0	15790.0	15610.0	15700.0	15700.0	2917852
2021-07-05	15650.0	15670.0	15490.0	15520.0	15520.0	3315590
2021-07-06	15620.0	15690.0	15500.0	15560.0	15560.0	3165551
2021-07-07	15050.0	15340.0	15030.0	15260.0	15260.0	6047534
2021-07-08	15200.0	15280.0	14990.0	15020.0	15020.0	4927900
2021-07-09	14620.0	14880.0	14240.0	14850.0	14850.0	15201967
2021-07-12	15440.0	15500.0	15360.0	15460.0	15460.0	8908945
2021-07-13	15630.0	15780.0	15610.0	15640.0	15640.0	6024571
2021-07-14	15410.0	15610.0	15370.0	15510.0	15510.0	4788303
2021-07-15	15430.0	15480.0	15120.0	15160.0	15160.0	6687459
2021-07-16	14840.0	15090.0	14700.0	14890.0	14890.0	8021962
2021-07-19	14500.0	14650.0	14320.0	14470.0	14470.0	8402245
2021-07-20	14200.0	14400.0	14140.0	14220.0	14220.0	8901150
2021-07-21	14610.0	14730.0	14260.0	14380.0	14380.0	7473282
2021-07-26	14900.0	14900.0	14610.0	14670.0	14670.0	5018976
2021-07-27	14750.0	14890.0	14700.0	14800.0	14800.0	3751393
2021-07-28	14500.0	14660.0	14280.0	14420.0	14420.0	7764140

#週足の株価を取得する
Open	High	Low	Close	Volume
Date					
2021-06-28	15850.0	15980.0	15540.0	15700.0	15300717
2021-07-05	15650.0	15690.0	14240.0	14850.0	32658542
2021-07-12	15440.0	15780.0	14700.0	14890.0	34431240
2021-07-19	14500.0	14730.0	14140.0	14380.0	24776677
2021-07-26	14900.0	14900.0	14280.0	14420.0	16534509
```