“Series”对象不可调用

2024-10-02 22:34:10 发布

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

我正在尝试使用熊猫提取财务数据。我似乎不能成功。我不知道问题是索引还是日期格式。请帮忙。我不明白这个错误。我还是站不住脚

脚本

from datetime import date, timedelta

import yfinance as yf
import pandas as pd
from pandas_datareader import data as pdr

from app import app, db
from models.prices import PriceModel

yf.pdr_override()

@app.cli.command("get-prices")

def getPrices():
    stocklist = ['MSFT', 'AAPL', 'AMZN', 'FB', 'GOOG', 'GOOGL', 'INTC', 'NVDA', 'NVDA', 'CSCO', 'ADBE', 'NFLX', 'PEP', 'PYP', 'CMCSA', 'TSLA', 'COST', 'GOOGL', 'AMGN', 'TMUS', 'AVGO', 'CHTR', 'TXN', 'GILD', 'QCOM', 'SBUX', 'INTU', 'MDLZ', 'VRTX', 'FISV', 'BKNG', 'ISRG', 'REGN', 'ADP', 'AMD', 'ATVI', 'CSX', 'BIIB', 'ILMN', 'MU', 'AMAT', 'JD', 'ADSK', 'MELI', 'ADI', 'LRCX', 'MNST', 'WBA', 'EXC', 'KHC', 'LULU', 'EA']

    for stock in stocklist:
       getPrice(stock)

def getPrice(stock):
   today = date.today()
   monthAgo = today - timedelta(days=31)

   data = pdr.get_data_yahoo(stock, start=monthAgo, end=today)
   df = pd.DataFrame(data)

for index, row in df.iterrows():
    addPrice(row, index.strftime("%Y-%m-%d"), stock)

def addPrice(price, date, stock):
    new_price = PriceModel(date=date, company=stock, openPrice=price['Open'], highPrice=price('High'),lowPrice=price['Low'], closePrice=price['Close'], volume=price['Volume'])

    db.session.add(new_price)
    db.session.commit

我的错误日志

[*********************100%***********************]  1 of 1 completed
Traceback (most recent call last):
   File "/Users/kutloano/anaconda3/bin/flask", line 11, in <module>
sys.exit(main())
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/flask/cli.py", line 894, in main
cli.main(args=args, prog_name=name)
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/flask/cli.py", line 557, in main
return super(FlaskGroup, self).main(*args, **kwargs)
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/flask/cli.py", line 412, in decorator
return __ctx.invoke(f, *args, **kwargs)
   File "/Users/kutloano/anaconda3/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
   File "/Users/kutloano/Documents/Prog/fintech/prices/prices.py", line 18, in getPrices
getPrice(stock)
   File "/Users/kutloano/Documents/Prog/fintech/prices/prices.py", line 28, in getPrice
addPrice(row, index.strftime("%Y-%m-%d"), stock)
   File "/Users/kutloano/Documents/Prog/fintech/prices/prices.py", line 31, in addPrice
new_price = PriceModel(date=date, company=stock, openPrice=price['Open'], highPrice=price('High'),lowPrice=price['Low'], closePrice=price['Close'], volume=price['Volume'])
   TypeError: 'Series' object is not callable

我不明白我的方法有什么不对


Tags: inpydatelibpackagesstocklinesite