Pandasデータフレームのfillna()は一部の列のみを配置します 質問する

Pandasデータフレームのfillna()は一部の列のみを配置します 質問する

Pandas データフレーム内の列のサブセットのみに、none 値を 0 で埋めようとしています。

私がする時:

import pandas as pd
df = pd.DataFrame(data={'a':[1,2,3,None],'b':[4,5,None,6],'c':[None,None,7,8]})
print df
df.fillna(value=0, inplace=True)
print df

出力:

     a    b    c
0  1.0  4.0  NaN
1  2.0  5.0  NaN
2  3.0  NaN  7.0
3  NaN  6.0  8.0
     a    b    c
0  1.0  4.0  0.0
1  2.0  5.0  0.0
2  3.0  0.0  7.0
3  0.0  6.0  8.0

Noneすべての を に置き換えます0。 私がやりたいのは、None列の とaのみを置き換えb、 は置き換えないことですc

これを行う最善の方法は何ですか?

ベストアンサー1

必要な列を選択し、割り当てによって実行できます。

df[['a', 'b']] = df[['a','b']].fillna(value=0)

結果の出力は予想どおりです。

     a    b    c
0  1.0  4.0  NaN
1  2.0  5.0  NaN
2  3.0  0.0  7.0
3  0.0  6.0  8.0

おすすめ記事