根据条件值在数据框中填充新列时发生值错误

时间:2019-09-03 16:55:18

标签: python-3.x pandas dataframe conditional-statements

我正在尝试编写一个函数,该函数将基于同一'BS_Trigger'dataframe)中另一列中的值填充名为'cnms_df'的新列。

today = datetime.datetime.today().strftime('%Y%m%d')
....
def bs_trigger(dataframe):
    dataframe['BS_Trigger'] = np.where((dataframe['PRELIM_DATE'] != None) and (dataframe['PRELIM_DATE'] <= today), "Yes", "No")

bs_trigger(cnms_df)

使用上面的代码,我不断抛出值错误:

  

ValueError:系列的真值不明确。使用空   a.bool(),a.item(),a.any()或a.all()。

我在这里做错了什么? 注意: :如果`cnms_df ['PRELIM_DATE'] [i] = None',则该值为NoneType,而不是字符串***

1 个答案:

答案 0 :(得分:1)

尝试更换:

dataframe['BS_Trigger'] = np.where((dataframe['PRELIM_DATE'] != None) and (dataframe['PRELIM_DATE'] <= today), "Yes", "No")

具有:

dataframe["BS_Trigger"]="No"
dataframe.BS_Trigger[(dataframe['PRELIM_DATE'] != None) & (dataframe['PRELIM_DATE'] <= today)]= "Yes"