如果列中的值为 NaN,则创建标签不完整的新列

Dan*_*Dan 1 python python-3.x pandas

我有这个数据框。

     a  b
0  NaN  2
1  2.0  4
2  NaN  7
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个新列,方法是检查“a”列中的值类型并相应地分配一个新标签。结果应如下所示:

     a  b  c
0  NaN  2  incomplete
1  2.0  4  complete
2  NaN  7  incomplete
Run Code Online (Sandbox Code Playgroud)

代码是:

if data_frame['a'].isna() == True: 
   data_frame['c'] = 'incomplete'
else:
   data_frame['c'] = 'complete'
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用简单的 if / else 语句,但出现此错误:

*** SyntaxError: unexpected EOF while parsing
Run Code Online (Sandbox Code Playgroud)

有人可以提出解决方案吗?

非常感谢

joh*_*ase 5

我建议使用np.where虽然它需要额外的导入

df['c'] = np.where(df.a.notnull(), 'complete', 'incomplete')
Run Code Online (Sandbox Code Playgroud)