首页 > 解决方案 > 初学者 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)


标签: pythonpandas

解决方案


推荐阅读