Python:用 isin 或 wkn 调用 pandas_datareader 或将其翻译成股票代码?
Python: call pandas_datareader with isin or wkn or translate this into ticker symbol?
我有一长串带有 ISIN 和 WKN-Number 的股票。我的目标是使用 pandas_datareader 从该股票中获取现在的历史数据。我的问题是,函数例如
import pandas_datareader as web
stock = web.DataReader('ALB', data_source="yahoo", start="01.01.2021", end="30.10.2021")
只能使用股票代码。有什么方法(也许是其他库)可以解决这个问题,或者有什么算法可以将数字转换为股票代码?
至少对于 ISIN 你可以使用 investpy
stocks.search_stocks
函数,其中 returns a pandas.DataFrame 包含(以及其他信息)该 ISIN 代码的 符号 。
import investpy
df = investpy.stocks.search_stocks(by='isin', value='US0126531013')
print(df)
# country name full_name isin currency symbol
# 0 mexico Albemarle Albemarle Corp US0126531013 MXN ALB
# 1 united states Albemarle Albemarle Corp US0126531013 USD ALB
# 2 germany Albemarle Albemarle Corporation US0126531013 EUR ALLE
from pandas_datareader import data as pdr
symbol = df.loc[df['country']=='united states','symbol'].values[0]
print(symbol) # ALB
stock = pdr.DataReader(symbol, data_source="yahoo", start="2021-01-01", end="2021-10-30")
print(stock.head())
Open High Low Close Adj Close Volume
Date
2021-01-04 152.899994 156.759995 150.289993 152.630005 151.645477 2898700
2021-01-05 152.669998 166.779999 152.669998 162.929993 161.879028 2628000
2021-01-06 165.500000 178.589996 165.500000 175.100006 173.970535 3335500
2021-01-07 183.479996 187.250000 180.550003 184.000000 182.813126 2947800
2021-01-08 184.490005 186.929993 178.660004 184.100006 182.912491 1659400
我有一长串带有 ISIN 和 WKN-Number 的股票。我的目标是使用 pandas_datareader 从该股票中获取现在的历史数据。我的问题是,函数例如
import pandas_datareader as web
stock = web.DataReader('ALB', data_source="yahoo", start="01.01.2021", end="30.10.2021")
只能使用股票代码。有什么方法(也许是其他库)可以解决这个问题,或者有什么算法可以将数字转换为股票代码?
至少对于 ISIN 你可以使用 investpy
stocks.search_stocks
函数,其中 returns a pandas.DataFrame 包含(以及其他信息)该 ISIN 代码的 符号 。
import investpy
df = investpy.stocks.search_stocks(by='isin', value='US0126531013')
print(df)
# country name full_name isin currency symbol
# 0 mexico Albemarle Albemarle Corp US0126531013 MXN ALB
# 1 united states Albemarle Albemarle Corp US0126531013 USD ALB
# 2 germany Albemarle Albemarle Corporation US0126531013 EUR ALLE
from pandas_datareader import data as pdr
symbol = df.loc[df['country']=='united states','symbol'].values[0]
print(symbol) # ALB
stock = pdr.DataReader(symbol, data_source="yahoo", start="2021-01-01", end="2021-10-30")
print(stock.head())
Open High Low Close Adj Close Volume
Date
2021-01-04 152.899994 156.759995 150.289993 152.630005 151.645477 2898700
2021-01-05 152.669998 166.779999 152.669998 162.929993 161.879028 2628000
2021-01-06 165.500000 178.589996 165.500000 175.100006 173.970535 3335500
2021-01-07 183.479996 187.250000 180.550003 184.000000 182.813126 2947800
2021-01-08 184.490005 186.929993 178.660004 184.100006 182.912491 1659400