我有一个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”?
3条答案
按热度按时间omqzjyyz1#
这样称呼它:
tzdcorbm2#
我找不到任何内置的正是这样做的,所以我手动做。如果是Series,代码如下:
在DataFrames的情况下,代码非常相似:
我使用.isnull()的问题是它不能区分NaN和None。这在您的应用程序中可能是问题,也可能不是问题。
sqxo8psd3#
如果你正在检查None以及一堆其他值,并且希望重用相同的代码而不是
.isnull()
的特殊情况,你可以在比较中使用.values
: