【问题标题】:empty list from columns conditional有条件的列中的空列表
【发布时间】:2021-02-10 21:23:47
【问题描述】:

我从数据框中获取列,我想做的是,如果列不为空,请执行此操作...如果为空,则执行此操作...但我收到错误:ValueError:具有多个元素的数组的真值不明确。通过使用以下代码来使用 a.any() 或 a.all()

    sw_col = df_sw.columns
    if sw_col.notnull():
        miss = (sw_col) - (df.columns)
        print(miss)
    else:
        df_sw = pd.concat([df, df_sw], ignore_index=True)

感谢你们的帮助:)

【问题讨论】:

    标签: python dataframe null


    【解决方案1】:

    关于你得到的错误,那是因为sw_col.notnull() 返回一个布尔值数组,python 无法决定它应该考虑执行哪个元素 if 或 else。

    ===========================================

    (1) 当您说列为空时,您的意思是数据框为空吗?因为,列返回列的名称。如果是这种情况,那么您可以使用df.empty 进行检查。

    (2) 如果不是这种情况,并且您正在尝试查看列是否有名称,我认为您的方法没有帮助,因为 df.columns 在没有列名称时返回 RangeIndex 类型对象。因此,您可以使用isinstance(sw_col, pd.RangeIndex) 查看是否有数据框列的名称。如果返回 True,则表示列没有预定义的名称。

    (3) 如果您尝试在数据框中搜索空列(没有元素的列),则可以应用df.notnull(),如果数据框中存在每个元素,它将为每个元素返回 True。因此,要查找完全空的列,甚至没有单个元素,您只需在每列上使用 a.any() 即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多