python - 尝试使用 pandas_datareader 从列表中创建数据框
问题描述
我正在尝试定义一个函数,该函数采用股票代码列表并使用来自雅虎财经的正确数据为每个代码创建一个数据框。
首先,该函数采用 *arg。
一旦传递了一个ticker/list-of-tickers,函数就会循环遍历列表。
对于每个代码,该函数调用 pandas_data 读取器并获取特定代码的数据。
该数据存储在名为“df”+ str(ticker) 的数据框中
我有:
import pandas_datareader as pdr
import pandas as pd
def Finance1(*args):
for arg in args:
df = pdr.get_data_yahoo(arg)
global df'arg'
df'arg' = df
x = "IBM"
y = "XOM"
list = [x, y]
Finance1(*list)
似乎无法动态创建以循环中的股票 atm 命名的数据帧/也动态创建本地变量。提前致谢。
下面的评论在下面进行了更改,但仍未获得所需的输出。
import pandas_datareader as pdr
import pandas as pd
dict1 = {}
def Finance1(*args):
for arg in args:
df = pdr.get_data_yahoo(arg)
dict1[arg] = df
return dict1
x = "IBM"
y = "XOM"
list = [x, y]
Finance1(*list)
第二次编辑
import pandas_datareader as pdr
import pandas as pd
def Finance1(*args):
dict1 = {}
for arg in args:
df = pdr.get_data_yahoo(arg)
return dict1
dict1[arg] = df
x = "IBM"
y = "XOM"
list1 = [x, y]
results = Finance1(*list)
最终和现在工作:
import pandas_datareader as pdr
import pandas as pd
def Finance1(*args):
dict1 = {}
for arg in args:
df = pdr.get_data_yahoo(arg)
dict1[arg] = df
return dict1
x = "IBM"
y = "XOM"
list1 = [x, y]
results = Finance1(*list1)
解决方案
推荐阅读
- sparql - 匹配多个谓词的 SPARQL 语法
- javascript - 如何使用while循环将php中的数据传输到javascript
- angular - 如何切换和取消切换特定行并在 *ngFor 中更改其背景
- gcc - 快速加载困难:Windows 上带有 Quicklisp 的 CL21 系统
- linux - 如何通过 ZIP 进行管道传输并在存档中拥有可用的文件名
- javascript - 打开另一个手风琴时如何自动关闭手风琴?
- facebook - 如何从我的 Facebook 应用程序访问我的客户帐户?
- ios - iOS Objective-C:如何识别通过 UINavigationController 呈现的视图控制器?
- spring-boot - 如何动态创建路由配置本身
- javascript - 无法字符串化或解析 JSON 数据、AJAX 请求