如何使用python从雅虎财务下载每月频率股票收盘价

问题描述 投票:1回答:1

我试图使用fix_yahoo_finance为每个股票代码提供每月开盘价,收盘价,高价,低价,但下面的代码并未按月收取数据。

任何想法如何获得这些数据。

下面是代码。

from datetime import date as d
from monthdelta import monthdelta
import datetime
from datetime import timedelta
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import pandas_datareader.data as web
import fix_yahoo_finance as fyf

to_period=d.today()
from_period=d.today() - datetime.timedelta(days=5*365)   


#######downloading data
TickerName = 'V'
stock_data=fyf.download(TickerName,start=from_period,end=to_period,interval='monthly')
stock_data = stock_data.iloc[:,0:4].round(2)
print(stock_data.tail(10))
python-3.x stock
1个回答
0
投票

请继续获取每日酒吧,然后您可以从每天到每月resample DataFrame。以下是我的完整代码:

import pandas as pd
from pandas_datareader import data as pdr
import fix_yahoo_finance as yf 
import datetime

yf.pdr_override() 
#these are the stocks we can choose in our portfolio
stocks = [
'AAPL'
]

startD = '2017-01-01'
endD = '2019-01-29'

start_date = pd.to_datetime(startD) 
end_date = pd.to_datetime(endD)
data = pdr.get_data_yahoo(stocks, start=start_date, end=end_date)#['Adj Close']

# using resample to group daily bar into monthly bar
n = 1  
mon_data=pd.DataFrame(data['Adj Close'].resample('BM').apply(lambda x: x[-1-n])) 

end_of_months = mon_data.index.tolist()
end_of_months[-1] = data.index[-1]
mon_data.index = end_of_months

mon_data.index = mon_data.index - datetime.timedelta(days=n)

#downloading the data from Yahoo! Finance
def download_data(stocks):
    data = pdr.get_data_yahoo(stocks, start=start_date, end=end_date)['Adj Close']  
    return data

if __name__ == "__main__":
    data = download_data(stocks)

print(mon_data)
© www.soinside.com 2019 - 2024. All rights reserved.