所以我有多个数据帧正在尝试循环。
我使用以下代码创建了一个列表:
data_list = [df1, df2, df3]
之后,我想在每个数据帧的“ Firm_Code”列中过滤出预定义的数字范围。
到目前为止,我可以针对单个数据框过滤出代码在6000到6999之间的公司,如下所示:
FFirms = range(6000,7000)
Non_FFirms = [b for b in df1['Firm_Code'] if b not in FFirms]
df1 = df1.loc[df1['Firm_Code'].isin(Non_FFirms)]
现在,我想遍历data_list
。我的第一次尝试如下所示:
for i in data_list:
i = i.loc[i.Firm_Code.isin(Non_FFirms)]
感谢任何建议!
答案 0 :(得分:0)
您可以将所有数据帧合并为一个数据帧,而无需列出数据帧列表。
data_df = pd.concat([df1,df2,df3],ignore_index=True)
如果您需要标识从哪个数据帧中获取了值,则可以添加一个新列,例如“ Df_number”。
使用data_df
,您可以过滤数据
FFirms = range(6000,7000)
Non_FFirms = [b for b in df1['Firm_Code'] if b not in FFirms]
filtered_data_df = data_df.loc[data_df['Firm_Code'].isin(Non_FFirms)]