我正在尝试定义一个函数,该函数需要一个股票报价器列表,并使用来自Yahoo Finance的适当数据为每个报价器创建一个数据框。
首先,该函数带有* arg。
一旦通过了股票代号/代号列表,该函数就会在列表中循环。
对于每个代码,该函数调用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)
似乎不能在循环中动态创建以代码自动取款机命名的数据帧,也不能动态创建本地变量。预先感谢。
下面的注释关闭了下面的更改,仍然没有得到想要的输出。
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)