2017-03-14 3 views
2

私は、約30000レコードを含むネイティブカントリーとして知られている列があるデータセットを持っています。いくつか見逃しているのはNaNなので、mode()という値で記入すると思いました。私はこのような何かを書いた:パンダフィラーモード

data['Native Country'].fillna(data['Native Country'].mode(), inplace=True) 

しかし、私は欠損値のカウントを行うとき:それはまだ列の母国のためNaN同じ数の値を考え出すされ

for col_name in data.columns: 
    print ("column:",col_name,".Missing:",sum(data[col_name].isnull())) 

を。

+0

あなたは、生のデータを投稿することができ、あなたが – EdChum

+0

を観察DFと出力を作成するためのコード'data ['Native Country']。mode()'は、シリーズオブジェクトを返します。最初の値にアクセスするには、 'fillna'操作中に' .iloc [0] 'をインクルードする必要があります。また、その列に少なくとも2回の繰り返しがない場合、 'NaN 'は置換されません。 –

答えて

2

ただ、シリーズの最初の要素を呼び出す:

data['Native Country'].fillna(data['Native Country'].mode()[0], inplace=True) 

たり、assisgnmentと同じことを行うことができた:

data['Native Country'] = data['Native Country'].fillna(data['Native Country'].mode()[0]) 
+0

素晴らしい回答ありがとうございます。 – Jim