Python 熊猫:从列列表中检查df中是否存在列
这里的目标是找到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
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中部署它,并尝试导入尽可能少的库。了解这一点非常有用。