首页 > 解决方案 > 组合在特定迭代中可能存在或不存在的多个数据帧

问题描述

我在 for 循环中运行代码。

对于每次迭代,我有多个数据帧 df1、df2、df3、df4.... 我必须将它们组合并创建一个最终数据帧 df_final。这些数据帧中的每一个都以 if 语句开头,因此是否可以生成数据帧是有条件的

现在由于多种情况,有可能不会生成任何或所有个人数据框。

我如何组合它们而不用担心个人数据框是否已经生成?

我尝试使用 try 和 except 但是对于每个数据帧我无法提供条件,因为它们有很多。有更简单的方法吗?

当前错误:

df_final = df1.append([df2, df3, df4])

NameError: name 'df2' is not defined

默认情况下,我应该总是得到df_final = df1以防没有其他数据帧生成,因为 df1 将永远存在。

注意:我使用了 try 和 except 来进行错误处理,但是由于数据帧的数量很大,它似乎并不实用,因为 try 块只执行一次

标签: pythonpandasdataframe

解决方案


您可以初始化最终数据框:

df_final = df1

然后使用循环:

for df_temp in [df2, df3, df4]:
    try:
         df_final = df_final.append(df_temp)
    except:
         pass

推荐阅读