此处的目标是查找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实现相同的目标?
答案 0 :(得分:4)
这是我的处理方式:
import numpy as np
for col in column_list:
if col not in df.columns:
df[col] = np.nan
答案 1 :(得分:1)
使用np.isin
,assign
并解压缩kwargs
s = np.isin(column_list, df.columns)
df = df.assign(**{k:None for k in np.array(column_list)[~s]})