python - 初学者 Python 股票筛选器
问题描述
我尝试构建一个简单的股票筛选器。筛选器应下载音量和平均值。volume 并且应该给我所有条件为 volume > avg 的股票。体积。
问题是,出了点问题,我不知道如何修复代码。它是代码中的一个整体问题,我希望我能得到一些帮助。我经常收到消息,数据是空的。但我认为表格和条件有问题......
第一个 for 循环给了我这个,这很好,我认为代码没有错误
Ticker volume avg. volume
aapl 31 20
ayx 20 32
nflx 25 28
第二个 for 循环是检查我的情况(音量 > 平均音量)
但它给了我以下输出:
ticker1 ... Stock
0 NaN ... ticker1
1 NaN ... Volume_1
2 NaN ... Average_Volume
[3 rows x 4 columns]
Process finished with exit code 0
通常只有苹果满足条件,它必须看起来像:
Stock volume avg. volume
aapl 31 20
那是我的代码:
from yahoo_fin.stock_info import get_analysts_info, get_stats, get_live_price, get_quote_table
import pandas as pd
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
tickers = ['aapl', 'ayx' , 'nflx']
exportList = pd.DataFrame(columns = ['ticker1', 'Volume_1', 'Average_Volume'])
for ticker in tickers:
df = get_stats(ticker)
df['ticker'] = ticker
df = df.pivot(index = 'ticker', columns = 'Attribute', values = 'Value')
df['Volume_1'] = get_quote_table(ticker)['Volume']
df['Average_Volume'] = get_quote_table(ticker)['Avg. Volume']
df = df[['Volume_1', 'Average_Volume']]
df = df.reset_index()
df.columns = ('ticker', 'Volume_1', 'Average_Volume')
rs_df = pd.DataFrame (columns = ['ticker1', 'Volume_1', 'Average_Volume'])
for stock in rs_df:
Volume_1 = df["Volume_1"]
Average_Volume = df["Average_Volume"]
if float(Volume_1) < float(Average_Volume):
exportList = exportList.append({'Stock': stock, "Volume_1": Volume_1, "Average_Volume": Average_Volume},
ignore_index=True)
print('\n', exportList)
解决方案
推荐阅读
- html - 如何在css文件中选择特定的html文件
- c# - 使用 EventCallback 复选框在 Blazor 组件之间进行通信
- java - 从硒日志中提取文本
- javascript - VS Code 不提供导入建议(Next JS、Javascript)
- asp.net-web-api - 是否可以使用身份服务器保护 .net 框架 webapi
- css - CSS Grid 容器缩小到项目大小
- r - 随时间模拟的生/死模型
- ruby - 从多个类的实例数组中获取最小值
- c# - 在 Default.aspx WebForms 中为特定页面显示不同的图像
- python - XGBoost 预测不同操作系统之间的差异