How to apply function to multiple pandas dataframe

2020-02-29 06:43发布

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条回答
够拽才男人
2楼-- · 2020-02-29 07:13

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.

查看更多
SAY GOODBYE
3楼-- · 2020-02-29 07:21

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
查看更多
登录 后发表回答