【问题标题】:Combining multiple dataframes which may or may not exist at particular iteration组合在特定迭代中可能存在或不存在的多个数据帧
【发布时间】:2021-02-08 18:16:43
【问题描述】:

我在 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 块只执行一次

【问题讨论】:

  • 请分享示例输入和预期输出,以便我们了解正在发生的事情。

标签: python pandas dataframe


【解决方案1】:

你可以初始化你的最终数据框:

df_final = df1

然后使用循环:

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

【讨论】:

    【解决方案2】:

    您最初可以将变量设置为None

    df2 = df3 = df4 = ... = None
    
    #Your normal code with your conditions goes here...
    

    然后做:

    df_final = df1.append([x for x in [df2, df3, df4] if x != None])
    

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 2013-12-26
      • 2011-10-03
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      相关资源
      最近更新 更多