2017-02-21 3 views
3

データフレームの欠損値をどのように埋めることができますか?行方不明の値は、NaNや何か共通のものではなく、代わりに2つの点として表示されます。どのようにそれらの行の平均値でそれらを埋めるつもりですか?データフレームをどのように埋めることができますか

     1971  1990  1999  2000  2001  2002 

Estonia    ..  17.4  8.3  8.5  8.5  8.6 
Spain    61.6 151.2 205.9 222.2 233.2 241.6 
SlovakRepublic  10.9  25.5  28.1  30.8  31.9  32.2 
Slovenia    ..  12.4  13.3  13.6  14.5  14.6 

私のヘッダーは年であり、私のインデックスは国です。

+0

ここにdtypesは何ですか?それらは混合か 'str'ですか?例えば、 'df ['1971']。replace( '..'、np.NaN)'のように動作しますか? – EdChum

答えて

2

それはあなたがvaluesによって作成numpy arrayで比較、maskを使用してmeanによって置き換えることができそうです、最後のfloatにすべての列をキャスト:

print (df.mean(axis=1)) 
Estonia   10.26 
Spain    210.82 
SlovakRepublic  29.70 
Slovenia   13.68 

df = df.mask(df.values == '..', df.mean(axis=1), axis=0).astype(float) 
print (df) 
       1971 1990 1999 2000 2001 2002 
Estonia   10.26 17.4 8.3 8.5 8.5 8.6 
Spain   61.6 151.2 205.9 222.2 233.2 241.6 
SlovakRepublic 10.9 25.5 28.1 30.8 31.9 32.2 
Slovenia  13.68 12.4 13.3 13.6 14.5 14.6 
+0

すごく早かった!助けてくれてありがとう! – Cannon

+0

すべての列は浮動小数点ですか? – jezrael

+0

はい、これらはすべて浮動小数点で、末尾に1つだけあります。 – Cannon

0

あなたは.set_value

試みを使用することができるはずですdf_name.set_value( 'index'、 'column'、value)

何か

df_name.set_value('Estonia','1971', 50) 
+1

これは、値を1つずつ入れても効果的です!ご意見をいただきありがとうございます。 – Cannon

関連する問題