How to Apply Function to Multiple Pandas Dataframe

How to Apply Function to Multiple Pandas Dataframe

I have multiple dataframes:

df1, df2, df3,..., dfn

They have the same type of data but from different groups of descriptors that cannot be joined. Now I need to apply the same function to each dataframe manually.

How can I apply the same function to multiple dataframes?

2 Answers

pipe + comprehension

If your dataframes contain related data, as in this case, you should store them in a list (if numeric ordering is sufficient) or dict (if you need to provide custom labels to each dataframe). Then you can pipe each dataframe through a function foo via a comprehension.

List example

df_list = [df1, df2, df3]
df_list = [df.pipe(foo) for df in df_list]

Then access your dataframes via df_list[0], df_list[1], etc.

Dictionary example

df_dict = {'first': df1, 'second': df2, 'third': df3}
df_dict = {k: v.pipe(foo) for k, v in df_dict.items()}

Then access your dataframes via df_dict['first], df_dict['second'], etc.

If the data frames have the same columns you could concat them to a single data frame, but otherwise there is not really a "smart" way of doing it:

df1, df2, df3 = (df.apply(...) for df in [df1, df2, df3]) # or either .map or .applymap
3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Chloe Bennett
Author

Chloe Bennett

Chloe Bennett explores the intersection of pop culture, streaming entertainment, digital trends, and contemporary lifestyle. Her weekly commentary reaches thousands of culture enthusiasts.