如何使用Python中的yahoo_fin计算移动平均值?
我正在尝试制作一个程序,当股票价格超过移动平均线时发送电子邮件提醒,我正在使用库如何使用Python中的yahoo_fin计算移动平均值?,python,yahoo-finance,stock,moving-average,Python,Yahoo Finance,Stock,Moving Average,我正在尝试制作一个程序,当股票价格超过移动平均线时发送电子邮件提醒,我正在使用库yahoo_fin(以下是示例) 我试图从雅虎财务.股票信息.获取统计数据('a')获取移动平均数据,但我得到以下错误: get_stats中第241行的文件“lib\site packages\yahoo_fin\stock_info.py” table.columns=[“属性”,“值”] 文件“lib\site packages\pandas\core\generic.py”,第5287行,在__ 返回对象。\
yahoo_fin
(以下是示例)
我试图从雅虎财务.股票信息.获取统计数据('a')
获取移动平均数据,但我得到以下错误:
get_stats中第241行的文件“lib\site packages\yahoo_fin\stock_info.py”
table.columns=[“属性”,“值”]
文件“lib\site packages\pandas\core\generic.py”,第5287行,在__
返回对象。\uuuu setattr\uuuuu(self、name、value)
pandas.\u libs.properties.AxisProperty.\uuu set\uu中第67行的文件“pandas\\u libs\properties.pyx”
文件“lib\site packages\pandas\core\generic.py”,第661行,在轴上
自身数据。设置轴(轴、标签)
文件“lib\site packages\pandas\core\internals\managers.py”,第178行,位于集合轴
f“长度不匹配:预期轴有{old_len}个元素,新”
ValueError:长度不匹配:预期轴有9个元素,新值有2个元素
任何关于修复此问题的帮助都将是巨大的
如果您不知道如何让这个特定的函数工作,我尝试过的另一种方法似乎是使用方法
yahoo\u fin.stock\u info.get\u data('a')
,但是我需要帮助才能知道如何根据这些数据计算移动平均线。您可以使用以下代码从get\u data
计算50天移动平均线:
导入雅虎财务
从雅虎财务导入股票信息
yahoo_fin.stock_info.get_data('a',interval='1d')['close'][-50:].mean()
如果要计算某一特定时间段内的值:
df = yahoo_fin.stock_info.get_data('a', interval='1d')
moving_average = [df['close'][i-50:i].mean() for i in range(50, df.shape[0]+1)]
我为此推了一个补丁-如果你升级你的yahoo_fin版本到0.8.5,现在应该可以修复了
from yahoo_fin import stock info as si
si.get_stats("a")
由此,你可以得到50天和200天的移动平均线。然而,正如@user7440787的回复中所提到的,您可以使用get_data方法来提取价格历史记录,然后计算您需要的任何窗口大小的移动平均值(10天、100天、150天等) 您使用的是哪一版本的python和yahoo_fin?它适用于
python3.6
和yahoo\u fin 0.8.4
。另外,你能给我一点代码上下文吗?您正在导入哪些模块?我正在使用python 3.7.7和yahoo_fin 0.8.4!我只是想让get_stats('a')工作,但它给出了一个错误。一旦我得到get_stats('a')来显示一些数据,那么我想从这些数据中得到移动平均值。只要输入yahoo_fin.stock_info.get_stats('a')就可以得到上面的错误。我也在使用import yahoo_fin&从yahoo_fin import stock_info抱歉,我无法复制这个问题。它工作正常python-c“导入雅虎财务;从雅虎财务导入股票信息;打印(雅虎财务。股票信息。获取数据('a')”
)。尝试不同版本的熊猫?你用的是哪个版本的熊猫?我用的是熊猫1.0.3!我试图使用get_stats('a'),而不是get_数据('a')。我可以尝试获取_数据(“a”),但如何从该数据中获取50天移动平均线?另外,您如何使它不在表中拾取不必要的数据?get_stats
也可以使用python-c“导入雅虎财务;从雅虎财务导入股票信息;打印(yahoo_fin.stock_info.get_stats('a')”
,我使用的是相同版本的pandas
。对不起,谢谢!我得到了stock\u info.get\u stats(“a”).Value[5]
只用于获取50毫安的值!