カラム「fruits」の値を以下の規則性に従って変更する
『grape -> 0』『orange -> 1』『banana -> 2』『melon -> 3』
fruits_dict = {
'grape': 0,
'orange': 1,
'banana': 2,
'melon': 3
}
mapでもreplaceでもどちらでもOK
train_df['fruits'] = train_df['fruits'].replace(fruits_dict)
train_df['fruits'] = train_df['fruits'].map(fruits_dict)
print(train_df['fruits'].value_counts())
0 500
1 200
2 300
3 400
Name: weather, dtype: int64
例外 『grape -> 0』のみにする
fruits_dict = {
'grape': 0
}
train_df['fruits'] = train_df['fruits'].replace(fruits_dict)
print(train_df['fruits'].value_counts())
0 500
orange 200
banana 300
melon 400
Name: weather, dtype: int64
fruits_dict = {
'grape': 0
}
train_df['fruits'] = train_df['fruits'].replace(fruits_dict)
print(train_df['fruits'].value_counts())
0.0 500
となる。これは、grape以外の数値がNANとなるからである。
辞書オブジェクトのキーに含まれない値はNaNとなることに注意する必要がある。
→map()では置換されない値がNaNとなってしまう。replace()では元の値のまま。