Python:使用函数的输入作为函数中数据帧名称的一部分

Python:使用函数的输入作为函数中数据帧名称的一部分,python,function,dataframe,Python,Function,Dataframe,我想定义一个函数,它可以通过改变输入来获取不同的数据帧。例如,与 def test (Source): print('df'+ Source) 我想运行test('A')并获取数据帧df_A,运行test('B')并获取数据帧df_B,等等。但它只将'df_A'作为字符串而不是表读取。df_A和df_B是预定义的 谢谢 如果使用globals(),它将返回一个字典,其中字符串格式的变量名作为键,变量值作为该键的对应值 因此,下面的代码解决了上述问题 import pandas as

我想定义一个函数,它可以通过改变输入来获取不同的数据帧。例如,与

def test (Source): 
    print('df'+ Source)
我想运行test('A')并获取数据帧df_A,运行test('B')并获取数据帧df_B,等等。但它只将'df_A'作为字符串而不是表读取。df_A和df_B是预定义的

谢谢

如果使用globals(),它将返回一个字典,其中字符串格式的变量名作为键,变量值作为该键的对应值

因此,下面的代码解决了上述问题

import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df_A = pd.DataFrame(data,columns=['Name','Age'])
print(df_A)

data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df_B = pd.DataFrame(data)
print(df_B)

def test (Source): 
    formatted_string = "df_"+Source
    if formatted_string in globals().keys():
        print(globals()[formatted_string])

test("A")
test("B")
如果使用globals(),它将返回一个字典,其中字符串格式的变量名作为键,变量值作为该键的对应值

因此,下面的代码解决了上述问题

import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df_A = pd.DataFrame(data,columns=['Name','Age'])
print(df_A)

data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df_B = pd.DataFrame(data)
print(df_B)

def test (Source): 
    formatted_string = "df_"+Source
    if formatted_string in globals().keys():
        print(globals()[formatted_string])

test("A")
test("B")

print命令仅打印使用“df”和输入变量源生成的连接字符串
要获取实际数据,需要使用eval()函数,如下所示:

def测试(来源):
返回值('df_uu'+源)

这将返回输出,就像在Jupyter单元格中有df_a一样。

print命令仅打印使用“df”和输入变量源生成的连接字符串
要获取实际数据,需要使用eval()函数,如下所示:

def测试(来源):
返回值('df_uu'+源)
这将返回输出,就像您在Jupyter单元格中有一个df_a一样