我试图为股票清单中的所有项目创建一个唯一的数据框。数据框应包含使用pandas_datareader从yahoo提取的67个字段。理想情况下,数据框索引(或第一列)应该是代码本身。
我尝试使用df.append或df.concat方法运行以下代码,但始终会收到错误消息:
TypeError:无法连接类型为“”的对象;仅pd.Series,pd.DataFrame和pd.Panel(已弃用)objs有效
有人能建议正确的代码将3个股票的数据框合并到一个数据框中吗?
import pandas as pd
import pandas_datareader as pdr
tickers = ['AMZN', 'AAPL', 'O']
dataset_list = pd.DataFrame()
for ticker in tickers:
stats = pdr.get_quote_yahoo(ticker)
for row in stats:
dataset_list.concat(row, ignore_index = True)
dataset_list
答案 0 :(得分:0)
尝试
tickers = ['AMZN', 'AAPL', 'O']
dataset_list = pd.DataFrame()
for ticker in tickers:
stats = pdr.get_quote_yahoo(ticker)
dataset_list = dataset_list.append(stats)
dataset_list = dataset_list.reset_index().rename(columns={"index":"ticker"})
dataset_list
ticker ask askSize averageDailyVolume10Day averageDailyVolume3Month
AMZN 1999.99 8 3503328 3984588
AAPL 204.49 8 19275700 27126164
O 70.01 8 1505514 2024175
答案 1 :(得分:0)
我想您可以尝试使用pd.concat
import pandas as pd
import pandas_datareader as pdr
tickers = ['AMZN', 'AAPL', 'O']
df = pd.concat([pdr.get_quote_yahoo(t) for t in tickers])