这里的目标是找到 df 中不存在的列并用空值创建它们。
我有一个列名列表,如下所示:
column_list = ('column_1', 'column_2', 'column_3')
Run Code Online (Sandbox Code Playgroud)
当我尝试检查该列是否存在时,它仅对存在的列给出 True,对于那些缺失的列不给出 False。
for column in column_list:
print df.columns.isin(column_list).any()
Run Code Online (Sandbox Code Playgroud)
在 PySpark 中,我可以使用以下方法实现这一点:
for column in column_list:
if not column in df.columns:
df = df.withColumn(column, lit(''))
Run Code Online (Sandbox Code Playgroud)
如何使用 Pandas 实现相同的目标?
使用np.isin、assign解包kwargs
s = np.isin(column_list, df.columns)
df = df.assign(**{k:None for k in np.array(column_list)[~s]})
Run Code Online (Sandbox Code Playgroud)
这是我的方法:
import numpy as np
for col in column_list:
if col not in df.columns:
df[col] = np.nan
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14795 次 |
| 最近记录: |