Python:Pandas Dataframe如果ColA为空,ColB包含String,则新列表示String

时间:2018-03-21 21:17:20

标签: python numpy where nan

编辑问题

我有以下示例表:

colA        colB
ABC         IAH
DEADFSLJ    CI
            CI
            CI
AFDSJLKA222 CI
23940281    CI

我想使用以下逻辑: 如果colA为空/空字符串且colB为CI,则创建一个显示不完整的新列(ColC)。否则,新栏目显示完成。

逻辑应该产生下表:

colA        colB    colC
ABC         IAH     Complete
DEADFSLJ    CI      Complete
            CI      Incomplete
            CI      Incomplete 
AFDSJLKA222 CI      Complete 
23940281    CI      Complete 

以下是我尝试的代码:

df_EVENT5_28['colC'] = np.where((df_EVENT5_28['colA'] == '') & (df_EVENT5_28['colB'] == 'CI'), 'Incomplete', 'Complete')

代码运行但产生以下错误:TypeError:无法将dtyped [bool]数组与[bool]类型的标量进行比较

思考?

1 个答案:

答案 0 :(得分:1)

NaN == NaN评估为False。

使用isnull()

 np.where((df_EVENT5_28['colA'].isnull()) & (df_EVENT5_28['colB'] == 'CI'), 'Incomplete', 'Complete')