选择具有“无”值的pandas像元

brgchamk  于 2023-06-20  发布在  其他
关注(0)|答案(3)|浏览(77)

我有一个pandas数据框的列,它是我从一个带有空白单元格的数据库查询中得到的。空白单元格变为“无”,我想检查每行是否为“无”:

In [325]: yes_records_sample['name']
Out[325]: 
41055    John J Murphy Professional Building
25260                                   None
41757             Armand Bayou Nature Center
31397                                   None
33104               Hubert Humphrey Building
16891                         Williams Hall
29618                                   None
3770                          Covenant House
39618                                   None
1342       Bhathal Student Services Building
20506                                   None

我对文档的理解是,我可以使用isnull()命令www.example.com检查每行是否为空http://pandas.pydata.org/pandas-docs/dev/missing_data.html#values-considered-missing
然而,这个功能对我来说不起作用:

In [332]: isnull(yes_records_sample['name'])

我得到以下错误:

NameError Traceback (most recent call last)
<ipython-input-332-55873906e7e6> in <module>()
----> 1 isnull(yes_records_sample['name'])
NameError: name 'isnull' is not defined

我还看到有人只是替换了“None”字符串,但这种方法的这些变体都不适合我:Rename "None" value in Pandas

yes_records_sample['name'].replace('None', "--no value--")
yes_records_sample['name'].replace(None, "--no value--")

我最终能够使用fillna函数,并使用空字符串yes_records_sample.fillna('')填充每一行作为解决方案,然后我可以检查yes_records_sample['name']=='',但我对“None”的工作原理及其含义深感困惑。有没有一种方法可以轻松地检查 Dataframe 中的单元格是否为“None”?

omqzjyyz

omqzjyyz1#

这样称呼它:

yes_records_sample['name'].isnull()
tzdcorbm

tzdcorbm2#

我找不到任何内置的正是这样做的,所以我手动做。如果是Series,代码如下:

import numpy as np
series = yes_records_sample['name']
n = np.empty_like(series)
n[...] = None
nones = series.values == n

在DataFrames的情况下,代码非常相似:

import numpy as np
df = yes_records_sample
n = np.empty_like(df)
n[...] = None
nones = df == n

我使用.isnull()的问题是它不能区分NaN和None。这在您的应用程序中可能是问题,也可能不是问题。

sqxo8psd

sqxo8psd3#

如果你正在检查None以及一堆其他值,并且希望重用相同的代码而不是.isnull()的特殊情况,你可以在比较中使用.values

df[df['A'].values == None]
df[df['A'].values == 'foo']  # works just as well for anything else you want to match on

相关问题