首页 > 解决方案 > Python 数据(系列?)与 pandas 的连接

问题描述

SP500_stocks = ["AAPL", "BA", "TSLA"]

SP_index = []
for stock in SP500_stocks:
    s_data = pdr.get_data_yahoo(stock, startDate, endDate)
    s_data = s_data["Adj Close"].pct_change()
    SP_index.append(s_data) 


df1 = pd.concat([SP_index[0], SP_index[1], SP_index[2]], axis = 1) 
df1.dropna(inplace=True)`

在这段代码中,我从 yahoo 中提取 SP500_stocks 中 3 个股票代码的数据。我相信 for 循环会返回一个系列,3 个单独的数据块,每个数据块都有一个日期列和一个百分比返回列。我的问题是,如果我想说有 51 只股票。我不想索引 SP_index 50 次。如何编写执行此操作的 for 或 while 循环?尝试在 df1 块上方的 for 循环中连接时出现错误。df1 块允许我将数据并排放置(也就是 4 列彼此相邻,第 1 列是日期列,然后是 3 个股票回报)。

标签: pythonpandasconcatenation

解决方案


您的代码通常没问题。为了简化它,只需使用以下行来创建数据框:

pd.concat(SP_index, axis = 1) 

这样,您不必分别引用每个SP_index[i]


推荐阅读