python - 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 个股票回报)。
解决方案
您的代码通常没问题。为了简化它,只需使用以下行来创建数据框:
pd.concat(SP_index, axis = 1)
这样,您不必分别引用每个SP_index[i]
。
推荐阅读
- spring - 在 Mule 4 域项目中设置单个 spring 应用程序上下文
- javascript - 填充输入字段时如何更改按钮的颜色
- python - (Django) 在 Django 表单向导中保存自定义用户模型
- java - 处理完Alert和waits后,页面没有加载,无法定位元素。(在硒中)
- javascript - 我如何将 li 移动到 ul 的底部?
- android-studio - 如何使用 Dagger2 android 为 ViewModel 使用构造函数注入?
- reactjs - 为反应组件创建包装器
- python - 如何从张量流中的谷歌存储桶中读取文件?
- git - bitbucket 管道中的差异文件
- javascript - 如何创建数组并在 Node.js 中传递它们