如果条件失败,np.where()则不执行任何操作 [英] np.where() do nothing if condition fails
本文介绍了如果条件失败,np.where()则不执行任何操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据框示例:
Created Insert Time MatchKey In Previous New Type
18593 2016-08-12 2018-02-19 LXGS090393APIN040640 No New Existing
5517 2016-08-12 2018-02-19 LIN380076CI166203726 No New Existing
2470 2018-02-12 2018-02-19 CI164414649APIN160672 No New Existing
13667 2016-08-12 2018-02-19 LIN257400APIN015446 Yes New Existing
10998 2016-08-12 2018-02-19 LXSV225786APIN158860 Yes New Existing
20149 2016-08-12 2018-02-19 LIN350167APIN158284 Yes New Existing
20143 2016-08-12 2018-02-19 LIN350167APIN161348 Yes New Existing
30252 2016-08-12 2018-02-19 LXGS120737APIN153339 Yes New Existing
12583 2016-08-09 2018-02-19 WIN556410APIN157186 Yes New Existing
28591 2018-05-03 2018-02-19 CI195705185APIN009076 No New Created
我想用以下方式替换 New Type 列中的值:如果条件失败,该函数将不执行任何操作:
I wanted to replace values in New Type column in a way that if the condition is failed the function does nothing:
current['New Type'] = np.where(current['In Previous']=='Yes','In Previous',pass)
但显然会导致语法错误,因为np.where()无法处理 pass :
but apparently it causes a syntax error as np.where() doesn't handle pass:
File "<ipython-input-9-7f68cda12cbe>", line 1
current['New Type'] = np.where(current['In Previous']=='Yes','In Previous',pass)
^
SyntaxError: invalid syntax
要实现相同目标,有什么替代方法?
What would be an alternative to achieve the same?
推荐答案
只返回该列而不是pass
,这与在条件为False
时不执行任何操作一样:
Just return the column instead of pass
this is the same as doing nothing when the condition is False
:
current['New Type'] = np.where(current['In Previous']=='Yes','In Previous',current['New Type'] )
或者您也可以屏蔽这些行:
Or you can just mask those rows:
current['New Type'] = current.loc[current['In Previous']=='Yes', 'In Previous']
这篇关于如果条件失败,np.where()则不执行任何操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文