Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:从列列表中检查df中是否存在列_Python_Pandas - Fatal编程技术网

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

Python 熊猫:从列列表中检查df中是否存在列,python,pandas,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

这里的目标是找到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(''))

如何使用熊猫实现同样的效果?

以下是我的方法:

import numpy as np

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

使用
np.isin
assign
和解包
kwargs

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

您从未在for循环中使用
变量。您正在重复执行相同的操作。。基本上检查
df
中是否有
列表中的
请注意,如果出于某种原因您不愿意为此导入numpy,numpy可以作为
pd.np
提供,谢谢。我试图避免使用Numpy,因为我想在AWS Lambda中部署它,并尝试导入尽可能少的库。了解这一点非常有用。