使用where条件中的Nan值替换阈值检查

2024-06-02 05:06:38 发布

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

我试图在满足阈值级别的数据帧中填充NAN值。但是,我在输出中得到的却是空值

我的代码如下:

import numpy as np

def a(df):
    df.loc[df['col1']>18.9,['col1']] = np.nan
    return df

输入

col1
18.50
18.92

输出

col1
18.50
null

预期产量

col1
18.50
NaN

Tags: 数据代码importnumpydfdefasnp
1条回答
网友
1楼 · 发布于 2024-06-02 05:06:38
df = pd.DataFrame({"ali":[1,2,3,4,5,6,7],"mali":[4,2,6,4,5,6,10]})
df["tresholholded"] = np.where(df.ali<df.mali,np.nan,df.ali)
df
#output
    ali mali tresholholded
0   1   4   NaN
1   2   2   2.0
2   3   6   NaN
3   4   4   4.0
4   5   5   5.0
5   6   6   6.0
6   7   10  NaN

np.where您可以在first参数中选择所需的conditions,然后在second参数中放置IF TRUE,在最后一个参数中放置ELSE

df["tresholholded"] = np.where(df.ali<5,np.nan,df.ali)
    ali mali tresholholded
0   1   4   NaN
1   2   2   NaN
2   3   6   NaN
3   4   4   NaN
4   5   5   5.0
5   6   6   6.0
6   7   10  7.0

相关问题 更多 >