Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

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

This might have been answered, but I can’t quite find the right group of words to search for to find the answer to the problem I’m having.

Situation:
I have a several data frames that could be plugged into a function. The function requires that I name the data frame so that it can take the shape.

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

I want the user to be able to specify the data frame to use as the table like this:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

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

Expectation: If the user input was TableXYZ then the variable table_name would reference TableXYZ so the function would be able to find the shape of TableXYZ to use that information in other parts of the function.

What actually happens: When I try to run the code I get an "AttribureError: ‘str’ has not attribute ‘shape’." I see that the table_name input is a string object, but I’m trying to reference the data frame itself, not the name.

I feel like I’m missing a step to turn the user’s input to something the function can actually take the shape of.

>Solution :

I’d recommend assigning each of your dataframes to a dictionary, then retrieving the dataframe by name from the dictionary to pass it to the heatmap function.

For example:

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)

Replace pd.DataFrame() in the first line with the actual data frames that you want to select from.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading