2016-04-02 6 views
14

自分では、パンダのデータフレームからナノ行をドロップする方法を見つけました。 datの列にxという値が含まれている場合、x列には、値がdatの各行を削除するよりエレガントな方法がありますか?パンダでナノ行をドロップするより良い方法

dat = dat[np.logical_not(np.isnan(dat.x))] 
dat = dat.reset_index(drop=True) 
+0

あなたは '[pd.dropnaを意味します()' ](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html)? – Zero

+0

は動作するようです – kilojoules

答えて

41

使用dropna

dat.dropna() 

すべてのラベルがNaNであるか、ラベルのいずれかの場合は、ドロップするのparam howを渡すことができますが、あなたの質問に答えるナン

dat.dropna(how='any') #to drop if any value in the row has a nan 
dat.dropna(how='all') #to drop if all values in the row are nan 

希望です!

編集1:あなたは下の彼の答えにJ.ドウにより示唆されるように、あなたは以下を使用することができ、唯一の特定の列(複数可)からnan値を含む行をドロップしたい場合には :

dat.dropna(subset=[col_list]) # col_list is a list of column names to consider for nan values. 
18

'x'が特にある行を削除する場合は、Hiteshの回答を展開するには、サブセットパラメータを使用します。彼の答えは、他の列がNaNを同様

動作しない以前の回答にコマンドを念のために
dat.dropna(subset=['x']) 
6

を持つ行がドロップされます、 はこれを試してみてください: dat.dropna(subset=['x'], inplace = True)

関連する問題