首页 > 解决方案 > Pandas,Python:传递数据帧的名称以循环运行

问题描述

我有任意大小的n数据框,df1, df2, df3,..., df_n我想将它们传递给各种函数/方法。一次将它们传递给foo(df1)tofoo(df_n)似乎很乏味,所以我想循环进行。

如果我创建一个列表dfs = ['df1', 'df2',..., 'df_n']并在列表上运行一个循环并将元素(数据框名称)传递给函数,那么我实际上是在传递字符串并且无法对函数内部的字符串执行数据框操作。如果我创建一个列表dfs = [df1, df2, ..., df_n],我似乎仍然无法使用dfs[df1].

标签: pythonpandas

解决方案


在构造dfs = [df1, df2, ..., df_n]时,每个元素都是一个数据框对象。您需要使用诸如dfs[0],之类的索引将它们作为常规列表访问df[1]

根据您的要求,您最好构建字典

dfs = {'df1': df1, 'df2': df2, 'df3': df3}

在上面的字典中,将每个子 df 称为 dfs['df1']


推荐阅读