对于下面的班级,我试图通过将两支股票放在将由班级运行的列表中来获取两只股票的价格数据。
import yfinance as yf
import pandas as pd
import csv
class price:
def __init__(self, ticker):
self.ticker = ticker
company = yf.Ticker(self.ticker)
price = company.history(period='max')
price_df = pd.DataFrame(price)
price_df.to_csv('test2.csv', index=False)
l = ['AAPL', 'KO']
for item in l:
price(item)
当我导出或打印price_df
时,我只会得到列表中的最后一个条目,即,仅获得“ KO”价格数据,而没有“ AAPL”。目标是在一个DataFrame中直接包含“ AAPL”价格数据和“ KO”。我该怎么办?
由于您正在类中创建数据框,我建议将代码列表传递给类并在内部创建数据框:
类似这样的东西:
import pandas as pd
class Price:
def __init__(self, tickers):
self.tickers = tickers
self.price_df = pd.DataFrame()
for ticker in tickers:
company = yf.Ticker(ticker)
price = company.history(period='max')
self.price_df.append(price)
self.price_df.to_csv('test2.csv', index=False)
l = ['AAPL', 'KO']
p = Price(l)