web-dev-qa-db-ja.com

pandas None値のセルを選択

空白のセルを含むデータベースクエリから取得した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()コマンドで各行がnullであるかどうかを確認できるということです http://pandas.pydata.org/pandas-docs/dev/missing_data.html#values-考慮されない

しかし、その機能は私にとっては機能していません:

_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
_

また、誰かが「なし」文字列を置き換えただけでしたが、そのアプローチのこれらのバリエーションはどちらもうまくいきませんでした: パンダの「なし」値の名前を変更

_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']==''_をチェックできましたが、 「なし」の仕組みとその意味。データフレーム内のセルが「なし」であるかどうかを簡単に確認する方法はありますか?

17

次のように呼び出します。

yes_records_sample['name'].isnull()
32
Korem

私はこれを正確に行うビルトインを見つけることができなかったので、手動で行います。シリーズの場合、コードは次のとおりです。

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を区別しないことです。これは、アプリケーションの問題である場合とそうでない場合があります。

1
g.a