我有几个数据帧,例如df1,df2等。然后我列出了这些df的名称,如lst = ['df1', 'df2']
现在,我想在函数“my_func()”
中使用这些dfmy_func(dataframe=df1)
my_func(dataframe=df2)
...
如何在循环中表达数据帧列表,以便我可以在my_func中调用不同的df? (下面的方法不起作用,因为我正在调用字符串而不是df的...)
for i in lst:
my_func(dataframe=i)
谢谢!
答案 0 :(得分:1)
我认为将数据集的名称存储为字符串,然后尝试将字符串作为参数传递会产生反效果。
相反,我要做的是创建一个字典,将所有数据集作为字符串键的值,并将字典对象传递给您的函数。
my_frames = {'df1' : [1,2,3], 'df2' : [4,5,6]}
def my_func(dataframe):
... do work on dataframe ...
for df_name, df_obj in my_frames.items():
print('Doing work on:', df_name)
my_func(df_obj)
字典和函数的另一个好处是你可以直接将字典扩展为命名参数。
my_frames = {'temperature' : 25.5, 'wind' : 4.6}
def weather(temperature=None, wind=None):
print('The temp is:', temperature, 'and the wind speed is:', wind)
weather(**my_frames)
但这只是一个侧面说明。
答案 1 :(得分:0)
所以我想出来......只需要使用eval():
for i in lst:
my_func(dataframe=eval(i))