np.哪里()如果条件失败,什么也不做

2024-10-02 12:23:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧的样本:

       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列中的值,这样如果条件失败,函数将不执行任何操作:

^{pr2}$

但显然它会导致语法错误np.哪里()不处理通过

File "<ipython-input-9-7f68cda12cbe>", line 1
current['New Type'] = np.where(current['In Previous']=='Yes','In Previous',pass)

                                                                          ^
SyntaxError: invalid syntax

有什么办法可以达到同样的效果?在


Tags: 数据noinnewtimetypenpcurrent
2条回答

您可以将^{}用于此目的:

df['New Type'].mask(df['In Previous']=='Yes', 'In Previous', inplace=True)

有点令人困惑的是,您必须记住pd.Series.mask在满足条件时更新值,而{}在条件满足时更新值。在

只需返回列而不是pass这与条件为False时不执行任何操作相同:

current['New Type'] = np.where(current['In Previous']=='Yes','In Previous',current['New Type'] )

或者你可以直接屏蔽这些行:

^{pr2}$

相关问题 更多 >

    热门问题