对熊猫来说还是有点陌生,所以我试着在这里学习这个教程: https://www.learndatasci.com/tutorials/python-finance-part-yahoo-finance-api-pandas-matplotlib/
但是,它似乎有点过时了,我不得不将数据源转换为从Tiingo提取。否则,尝试按原样遵循教程,每次调用reindex时都会遇到异常。例外情况如下:
...site-packages\pandas\core\indexes\multi.py", line 483, in from_tuples
arrays = list(lib.tuples_to_object_array(tuples).T)
TypeError: Argument 'tuples' has incorrect type (expected numpy.ndarray, got DatetimeArray)
这是我的代码版本。你知道吗
import pandas as pd
import pandas_datareader as pdr
start_date = '2019-8-27'
end_date = '2019-8-30'
panel_data = pdr.get_data_tiingo('GLD', start=start_date, end=end_date, api_key='[REDACTED]')
close = panel_data['close']
all_weekdays = pd.date_range(start=start_date, end=end_date, freq='B')
close = close.reindex(all_weekdays)
本教程使到目前为止的一切看起来都应该正常工作,但是在reindex()
调用中出现了TypeError异常。为什么?
我确实尝试过在all_weekdays
之后抛出一个.to_numpy()
来满足异常消息,但它仍然给出了相同的异常,包括说它是一个DatetimeArray。你知道吗
到目前为止,调试使我认为它有问题,因为close
系列轴被设置为包含符号和日期列的多索引,如打印输出所示。你知道吗
[MultiIndex([('GLD', '2019-08-27 00:00:00+00:00'),
('GLD', '2019-08-28 00:00:00+00:00'),
('GLD', '2019-08-29 00:00:00+00:00'),
('GLD', '2019-08-30 00:00:00+00:00')],
names=['symbol', 'date'])]
如果它以DatetimeIndex的形式对一个简单的日期列表重新编制索引,那么它可能会遇到问题,即all_weekdays
。你知道吗
DatetimeIndex(['2019-08-27', '2019-08-28', '2019-08-29', '2019-08-30'], dtype='datetime64[ns]', freq='B')
在重新索引之前,是否需要强制一个索引与另一个索引匹配?如果是的话,我该怎么做呢?如果没有,那么在本教程中有什么等效的解决方法可以解除我的阻止?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐