条件列中的空列表

empty list from columns conditional

我从数据框中获取列,我想做的是,如果列不为空,则执行此操作...如果为空,则执行此操作...但我收到错误消息: 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)

非常感谢你们的帮助:)

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

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

(1) 当你说列是空的时,你是说数据框是空的吗?因为,列 return 列的名称。如果是这样,那么您可以使用 df.empty 来检查。

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

(3) 如果您尝试在数据框中搜索空列(没有元素的列),那么您可以应用 df.notnull() 并且如果每个元素都为 return True存在于数据框中。因此,要找到甚至没有单个元素的完全空的列,您只需在每一列上使用 a.any()。