使用datareader获取有关股票的数据

2024-04-25 09:31:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何使它看起来不那么丑陋,线条更少? 能够将大量股票导出到csv文件中,也可以在每个股票信息之后有一行新行,这样我就不必自己把它放进去了。 P.s.也有办法获得市值,并可能随之浮动。请

This is what I'm trying to achieve


import datetime as dt

import matplotlib.pyplot as plt

from matplotlib import style

import pandas as pd

import pandas_datareader.data as web

style.use('ggplot')

start = dt.datetime(2019,12,20)

end = dt.datetime(2019,12,31)

df = web.DataReader('SDRL', 'yahoo', start, end)

df2 = web.DataReader('SLNO', 'yahoo', start, end)

df3 = web.DataReader('PTI', 'yahoo', start, end)

df4 = web.DataReader('LCTX', 'yahoo', start, end)

df5 = web.DataReader('CLPS', 'yahoo', start, end)

df6 = web.DataReader('AGTC', 'yahoo', start, end)

df7 = web.DataReader('NLNK', 'yahoo', start, end)

df8 = web.DataReader('SAVA', 'yahoo', start, end)

df9 = web.DataReader('MBOT', 'yahoo', start, end)

df10 = web.DataReader('HSDT', 'yahoo', start, end)

df11 = web.DataReader('CTXR', 'yahoo', start, end)

df12 = web.DataReader('ISCNF', 'yahoo', start, end)

df13 = web.DataReader('DCAR', 'yahoo', start, end)

df14 = web.DataReader('LAIX', 'yahoo', start, end)

df15 = web.DataReader('MRNS', 'yahoo', start, end)

df16 = web.DataReader('DRRX', 'yahoo', start, end)

df17 = web.DataReader('NLNK', 'yahoo', start, end)

df18 = web.DataReader('CANF', 'yahoo', start, end)

df19 = web.DataReader('CBKC', 'yahoo', start, end)

df20 = web.DataReader('GSAT', 'yahoo', start, end)

df21 = web.DataReader('CYDY', 'yahoo', start, end)

df22 = web.DataReader('SDRL', 'yahoo', start, end)

df23 = web.DataReader('MRSN', 'yahoo', start, end)

df24 = web.DataReader('ASRT', 'yahoo', start, end)

df25 = web.DataReader('BB', 'yahoo', start, end)

df26= web.DataReader('FCEL', 'yahoo', start, end)

df27 = web.DataReader('MDNAF', 'yahoo', start, end)

df28 = web.DataReader('INPX', 'yahoo', start, end)

df29 = web.DataReader('TKRFF', 'yahoo', start, end)

df30 = web.DataReader('PRTK', 'yahoo', start, end)





df.append(df2)
df52 = df.append(df2)

df52.append(df3)
df53 = df52.append(df3)

df53.append(df4)
df54 = df53.append(df4)

df54.append(df5)
df55 = df54.append(df5)

df55.append(df6)
df56 = df55.append(df6)

df56.append(df7)
df57 = df56.append(df7)

df57.append(df8)
df58 = df57.append(df8)

df58.append(df9)
df59 = df58.append(df9)

df59.append(df10)
df60 = df59.append(df10)

df60.append(df11)
df61 = df60.append(df11)

df61.append(df12)
df62 = df61.append(df12)

df62.append(df13)
df63 = df62.append(df13)

df63.append(df14)
df64 = df63.append(df14)

df64.append(df15)
df65 = df64.append(df15)

df65.append(df16)
df66 = df65.append(df16)

df66.append(df17)
df67 = df66.append(df17)

df67.append(df18)
df68 = df67.append(df18)

df68.append(df19)
df69 = df68.append(df19)

df69.append(df20)
df70 = df69.append(df20)

df70.append(df21)
df71 = df70.append(df21)

df71.append(df22)
df72 = df71.append(df22)

df72.append(df23)
df73 = df72.append(df23)

df73.append(df24)
df74 = df73.append(df24)

df74.append(df25)
df75 = df74.append(df25)

df75.append(df26)
df76 = df75.append(df26)

df76.append(df27)
df77 = df76.append(df27)

df77.append(df28)
df78 = df77.append(df28)

df78.append(df29)
df79 = df78.append(df29)

df79.append(df30)
df80 = df79.append(df30)







print(df80)

df80.to_csv('Gap-Ups.csv')
df80 = pd.read_csv('Gap-Ups.csv', parse_dates=True, index_col=0)

Tags: csvimportwebdfdatetimeasdtstart
2条回答

我建议使用yfinancehttps://pypi.org/project/yfinance/

你可以用

import yfinance as yf
data = yf.download("SPY AAPL", start="2017-01-01", end="2017-04-30")

它返回一个数据框,其中包含你输入的所有股票数据。我相信它也会回报市值,但不会回报浮动数据

使用^{}

#Enter here all the list
companies_list = ['SDRL','SLNO','PTI']
df = pd.concat([web.DataReader(company, 'yahoo', start, end) 
                for company in companies_list])

虽然通过这种方式,您将无法区分数据的来源,但我建议使用axis = 1连接或使用数据帧字典

#Enter here all the list
companies_list = ['SDRL','SLNO','PTI']
df = pd.concat([(web.DataReader(company, 'yahoo', start, end)
                    .add_suffix(f'_{company}'))
                for company in companies_list],axis = 1)

创建数据帧的dict

d_company = {company:web.DataReader(company, 'yahoo', start, end)
             for company in companies_list}

相关问题 更多 >