带Pandas的股票筛选器的空数据帧

2024-09-28 21:10:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题:当我试图从yahoo fin接收股票数据时,我得到了一个空的数据框

我不知道该怎么办。。我是初学者,这是我的第一个剧本。我希望我能得到一些帮助,并能更多地了解python

错误消息是:

Empty DataFrame
Columns: [Aktie, Volumen, Durchsch. Volumen, 2Volumen, Durschn. Volumen]
Index: []
import pandas as pd
import requests
from collections import defaultdict
from yahoo_fin.stock_info import get_analysts_info, get_stats, get_live_price, get_quote_table
import ssl
import yahoo_fin.stock_info as si

ssl._create_default_https_context = ssl._create_unverified_context

url = 'https://de.finance.yahoo.com/quote/%5EGDAXI/components?p=%5EGDAXI'

header = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'}

response = requests.get(url, headers=header)

soup = BeautifulSoup(response.content, 'lxml')

data = defaultdict(list)

for item in soup.select('tr.BdT'):
    data["Symbol"].append(item.select_one('a').text)

tickers = data["Symbol"]

df = pd.DataFrame(columns = ['Aktie', 'Volumen', 'Durchsch. Volumen', '2Volumen'])


for ticker in tickers:

    df['Aktie'] = ticker
    df['Volumen'] = get_quote_table(ticker)['Volume']
    df['Durschn. Volumen'] = get_quote_table(ticker)['Avg. Volume']
    df['2Volumen'] = df['Durschn. Volumen'] * 2

    stocks2 = df.loc[df['Volumen'] < df['2Volumen'], :]

print(df)


Tags: 数据importinfossldfdatagettable