gpt4 book ai didi

python - pandas 的过滤功能 - 在列中查看 NaN 值

转载 作者:行者123 更新时间:2023-12-05 04:39:35 26 4
gpt4 key购买 nike

我创建的函数:

#Create a function that identifies blank values
def GPID_blank(df, variable):
df = df.loc[df['GPID'] == variable]
return df

测试:

variable = ''
test = GPID_blank(df, variable)
test

目标:创建一个可以过滤任何数据帧列“GPID”的函数,以查看 GPID 缺少数据的所有行。

我已经尝试运行 variable = 'NaN' 但仍然没有成功。但是,我知道该函数有效,就像我使用现实生活中的变量“OH82CD85”一样,该函数会相应地过滤我的数据集。

因此,为什么它不过滤掉空白单元格 variable = 'NaN'?我知道对于我的数据集,有 5 行 GPID 缺少数据。

例子 df:

df = pd.DataFrame({'Client': ['A','B','C'], 'GPID':['BRUNS2','OH82CD85','']})

Client GPID
0 A BRUNS2
1 B OH82CD85
2 C

GPID 列示例:

0     OH82CD85
1 BW07TI20
2 OW36HW81
3 PE56TA73
4 CT46SX81
5 OD79AU80
6 GF46DB60
7 OL07ST01
8 VP38SM57
9 AH90AE61
10 PG86KO78
11 NaN
12 NaN
13 SO21GR72
14 DY85IN90
15 KW80CV02
16 CM15QP83
17 VC38FP82
18 DA36RX05
19 DD74HD38

最佳答案

您不能将 == 与 NaN 一起使用。 NaN != NaN.

相反,您可以稍微修改您的函数以使用 pd.isna()(或 np.isnan())检查参数是否为 NaN:

def GPID_blank(df, variable):
if pd.isna(variable):
return df.loc[df['GPID'].isna()]
else:
return df.loc[df['GPID'] == variable]

关于python - pandas 的过滤功能 - 在列中查看 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70424842/

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