2016-04-24 10 views
4

私はpandasデータフレームとしてインポートされたxlsファイルを持っていますが、データフレームをジオロケーションデータを持つ他のものとマージするために使用する座標を含む2つの列があります。 df.info()は8859個のレコードを表示し、コーディネートなしの列は'8835 non-null float64 'レコードを持ちます。特定の列にヌル値があることに基づいてDataFrameから行を選択

他の列(ストリートアドレスタウン)のいずれかが手動でこれらの24レコードの座標を戻すことができないかどうかを確認するために、すべての列レコードで24行(NULLであると仮定します) 。つまりdfの列のデータフレームを返します。['Easting'] isnullまたはNaNの場合

hereを次のように変更しました。

df.loc[df['Easting'] == NaN] 

空のデータフレーム(0行×24列)を取得しても意味がありません(私にとって)。これらの値が定義されていないため、NullまたはNon nullを使用しようとすると機能しません。私は何が欠けていますか?

答えて

5

私はboolean indexingNaN値をチェックするためにあなたがisnull必要があると思う:

df[df['Easting'].isnull()] 

Docs

警告

一つは留意する必要があることのpython(とnumpyの)で、ナノは平等とは比較されませんが、なしはありません。 Pandas/numpyはnp.nan!= np.nanという事実を使用し、np.nanのようにNoneを扱うことに注意してください。

In [11]: None == None 
Out[11]: True 

In [12]: np.nan == np.nan 
Out[12]: False 

上記に比べて、なし/ np.nan対スカラー等価比較には有用な情報を提供していません。

In [13]: df2['one'] == np.nan 
Out[13]: 
a False 
b False 
c False 
d False 
e False 
f False 
g False 
h False 
Name: one, dtype: bool 
+0

魅力を働いた迅速な対応、ありがとうござい。私はpythonには新しく、nanとnoneの違いを認識していませんでした。 –

+0

うれしいことができますよ!がんばろう! – jezrael

+0

興味深いことに、この方法を使ってクリーニングプロセスの一部として行を削除しました。レコード数が少なくても、.info()クエリで返されるサイズはメモリ使用量が1.6 + mbから1.7 + mbに増加していることを私にとっては問題ではないと示しています。なぜ将来のために知ることに興味がある –

関連する問題