- PythonのPandasライブラリで欠損値の穴埋めをしたい。
データの整理をするうえで、欠損補完で詰まりました。
何列かあるDataFrameを作りました。何列かある中で、
SUUJI列の欠損を埋めるのに、各ID列ごとの平均を出して
その値で、各ID列の欠損を埋めたいと考えています。
- 利用するDataFrameの部分
例えば、
・CATEGORY=1の欠損については、(1.0+2.5)/2の値で埋める。
・CATEGORY=2の欠損については、(0.9+0.4+0.3)/3の値で埋める。
ということをしたいのです。
CATEGORY | SUUJI |
---|---|
1 | 1.0 |
1 | 2.5 |
1 | NaN |
2 | 0.9 |
2 | NaN |
2 | 0.4 |
2 | 0.3 |
3.書いたスクリプト
以下のスクリプトでfillnaの結果が反映されません。
最後の行を、inplace=Falseにしてprintすると、埋められているdfが出力されるのですが
inplace=Trueのもとでは、df表示させても欠損値が補完されていません。
for i in df['CATEGORY'].unique().tolist(): val2 = df[df['CATEGORY']==i]['SUUJI'].mean() print(val2) df[df['CATEGORY']==i]['SUUJI'].fillna(value=val2,inplace=True)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。