gpt4 book ai didi

数据框上的 Python If 语句

转载 作者:行者123 更新时间:2023-11-30 22:57:19 25 4
gpt4 key购买 nike

如果 df['nonzero'] 的相应值不是 'NAN' 且“<= 1”,我想将列 df['pred'] 替换为 0。

         beta0  beta1  number_repair   t  pred  nonzero  
0 NaN NaN NaN 6 0 NaN
1 NaN NaN NaN 7 0 NaN
2 NaN NaN NaN 8 0 NaN
3 NaN NaN NaN 9 3 0
4 NaN NaN NaN 10 2 0
5 NaN NaN NaN 11 1 0

我尝试了以下代码,但返回错误。我如何纠正代码或者有人可以建议其他方法来实现它?谢谢!

mapping['pred'] = 0 if (np.all(np.isnan(mapping['nonzero'])),
(mapping['nonzero'] <= 1)) else mapping['pred']

最佳答案

我认为你可以使用loc通过函数 notnull 使用 mask :

mask = (df['nonzero'].notnull()) & (df['nonzero'] <= 1)
print mask
0 False
1 False
2 False
3 True
4 True
5 True
Name: nonzero, dtype: bool

作者:comment (谢谢 PhilChang)它与:

mask = df['nonzero'] <= 1
print mask
0 False
1 False
2 False
3 True
4 True
5 True
Name: nonzero, dtype: bool
df.loc[ mask, 'pred'] = 0
print df
beta0 beta1 number_repair t pred nonzero
0 NaN NaN NaN 6 0 NaN
1 NaN NaN NaN 7 0 NaN
2 NaN NaN NaN 8 0 NaN
3 NaN NaN NaN 9 0 0.0
4 NaN NaN NaN 10 0 0.0
5 NaN NaN NaN 11 0 0.0

另一个解决方案 mask :

df['pred'] = df.pred.mask(mask,0)
print df
beta0 beta1 number_repair t pred nonzero
0 NaN NaN NaN 6 0 NaN
1 NaN NaN NaN 7 0 NaN
2 NaN NaN NaN 8 0 NaN
3 NaN NaN NaN 9 0 0.0
4 NaN NaN NaN 10 0 0.0
5 NaN NaN NaN 11 0 0.0

关于数据框上的 Python If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36719191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com