如何创建包含每个股票所有统计信息的唯一数据框?

时间:2019-07-17 15:09:36

标签: python pandas dataframe

我试图为股票清单中的所有项目创建一个唯一的数据框。数据框应包含使用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

2 个答案:

答案 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])