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

时间:2018-10-22 17:47:51

标签: python pandas

此处的目标是查找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(''))

如何使用Pandas实现相同的目标?

2 个答案:

答案 0 :(得分:4)

这是我的处理方式:

import numpy as np

for col in column_list:
    if col not in df.columns:
        df[col] = np.nan

答案 1 :(得分:1)

使用np.isinassign并解压缩kwargs

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