如果该值仅出现一次,则替换该列中的值

数据挖掘 Python
2021-09-26 06:21:16

我有一个数据框,如果该列中该值的值计数正好为 1,我想用“其他”替换该列中的值

i        Food_group
0          Flake
1          Flake
2          Flake
3         Almond
4          Drink
5          Drink
6          Flake

我努力了,

data["food_group"] = data.food_group.apply(lambda x: "other" if x.value_counts()==1 else x)

我有错误

AttributeError: 'str' object has no attribute 'value_counts'
1个回答

如果您单独存储值计数以避免在应用循环内重做它会更容易。你可以这样做:

food_count = data["food_group"].value_counts()
data["food_group"] = data["food_group"].apply(lambda x: "other" if food_count[x]==1 else x)