Python 修复库中用于下载多个股票符号的面板弃用
我想知道是否有人能帮我解决一个图书馆里的一个快速问题,我用它从雅虎财经下载多个股票符号。以下是错误: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/ipykernel_launcher.py:2: 弃用警告:面板已弃用,将在以后的时间内删除 未来版本。表示这些类型的 三维数据在数据帧上具有多索引,通过 方法,也可以使用xarray包 . Pandas提供了一个Python 修复库中用于下载多个股票符号的面板弃用,python,pandas,Python,Pandas,我想知道是否有人能帮我解决一个图书馆里的一个快速问题,我用它从雅虎财经下载多个股票符号。以下是错误: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/ipykernel_launcher.py:2: 弃用警告:面板已弃用,将在以后的时间内删除 未来版本。表示这些类型的 三维数据在数据帧上具有多索引,通过 方法,也可以使用xarray包 . Pandas提供了一个.to_xarray() 方
.to_xarray()
方法来帮助自动化此转换
这是导致问题的库中的代码,我如何修复它
def getHistoricData(symbols, **options):
'''
get data from Yahoo finance and return pandas dataframe
Will get OHLCV data frame if sinle symbol is provided.
If many symbols are provided, it will return a wide panel
Parameters
------------
symbols : str or list
Yahoo finanance symbol or a list of symbols
sDate : tuple (optional)
start date (y,m,d)
adjust : bool
T/[F] adjust data based on adj_close
Returns
---------
Panel
'''
assert isinstance(symbols,(list,str)), 'Input must be a string symbol or a list of symbols'
if isinstance(symbols,str):
return getSymbolData(symbols,**options)
else:
data = {}
print('Downloading data:')
p = ProgressBar(len(symbols))
for idx,symbol in enumerate(symbols):
p.animate(idx+1)
data[symbol] = getSymbolData(symbol,verbose=False,**options)
return pd.Panel(data)
我发现了这个问题,并在最新版本的库中修复了它。下面是更新的代码,以防有人有类似的问题,并希望看到如何解决这一问题
def getHistoricData(symbols, delay=0.5, **options):
'''
get data from Yahoo finance and return pandas dataframe
Will get OHLCV data frame if sinle symbol is provided.
If many symbols are provided, it will return a wide panel
Parameters
------------
symbols : str or list
Yahoo finanance symbol or a list of symbols
sDate : tuple (optional)
start date (y,m,d)
adjust : bool
T/[F] adjust data based on adj_close
Returns
---------
DataFrame, multi-index
'''
assert isinstance(symbols,(list,str)), 'Input must be a string symbol or a list of symbols'
if isinstance(symbols,str):
return getSymbolData(symbols,**options)
else:
data = {}
print('Downloading data:')
p = ProgressBar(len(symbols))
for idx,symbol in enumerate(symbols):
p.animate(idx+1)
data[symbol] = getSymbolData(symbol,verbose=False,**options)
sleep(delay)
return pd.concat(data,axis=1, names=['symbol','ohlcv'])