代码之家  ›  专栏  ›  技术社区  ›  Raj

pandas:从列列表中检查df中是否存在列

  •  1
  • Raj  · 技术社区  · 6 年前

    这里的目标是找到df中不存在的列,并用空值创建它们。

    我有一个列名列表,如下所示:

    column_list = ('column_1', 'column_2', 'column_3')
    

    当我试图检查该列是否存在时,它只对存在的列给出true,而对缺少的列不给出false。

    for column in column_list:
        print df.columns.isin(column_list).any()
    

    在pyspark中,我可以通过以下方法实现:

    for column in column_list:
            if not column in df.columns:
                df = df.withColumn(column, lit(''))
    

    我怎样才能用熊猫达到同样的效果呢?

    2 回复  |  直到 6 年前
        1
  •  4
  •   rafaelc    6 年前

    以下是我的方法:

    import numpy as np
    
    for col in column_list:
        if col not in df.columns:
            df[col] = np.nan
    
        2
  •  1
  •   rafaelc    6 年前

    使用 np.isin , assign 打开包装 kwargs

    s = np.isin(column_list, df.columns)
    df = df.assign(**{k:None for k in np.array(column_list)[~s]})
    
    推荐文章