从用户输入调用特定的 Pandas Dataframe 以在函数中使用?

Calling a specific Pandas Dataframe from user input to use in a function?

这可能已经得到解答,但我找不到合适的词组来搜索以找到我遇到的问题的答案。

情况: 我有几个可以插入函数的数据框。该函数要求我命名数据框,以便它可以呈现形状。

def heatmap(table, cmap=cm.inferno, vmin=None, vmax=None, inner_r=0.25, pie_args={}:
     n, m = table.shape

我希望用户能够像这样指定要用作 table 的数据框:

table_name= input('specify Table to Graph: ')
heatmap(table_name)

期望:如果用户输入是 TableXYZ,那么变量 table_name 将引用 TableXYZ,因此该函数将能够找到 TableXYZ 的形状以使用该信息在函数的其他部分。

实际发生了什么:当我尝试 运行 代码时,我得到一个“AttribureError:'str' 没有属性 'shape'。 “我看到 table_name 输入是一个字符串对象,但我试图引用数据框本身,而不是名称。

我觉得我缺少将用户的输入转化为函数实际可以采用的形式的步骤。

我建议将每个数据帧分配给一个字典,然后从字典中按名称检索数据帧以将其传递给 heatmap 函数。

例如:

df_by_name = {"df_a": pd.DataFrame(), "df_b": pd.DataFrame()}
table_name= input('specify Table to Graph: ')
df = df_by_name[table_name]
heatmap(df)

将第一行中的 pd.DataFrame() 替换为您想要 select 来自的实际数据帧。