将某些分类变量更改为统一条目

Change certain categorical variables to a unified entry

假设我有一个数据框,其中包含一个名为 animals 的列。条目如下所示:

'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'E', 'F', 'G', 'H', 'I'.

我想将条目 'E'、'F'、'G'、'H' 和 'I' 更改为另一个名为 'D' 的统一条目.将所有这些分类条目转换为一个类别的最佳方法是什么?

您可以为要更改的条目创建一个 list,然后您可以使用 loc 为它们分配 'D' 以发现它们,并且 isin评估您的条件是否满足:

li = ['E','F','G','H','I']
df.loc[df.animals.isin(li), 'animals'] = 'D'

loc 的替代方法是 numpywhere:

df['animals'] = np.where(df['animals'].isin(li),'D',df['animals'])

其中显示:对于动物列中的每一行,检查该值是否在名为 li 的列表中,如果它是 return 'D' , 否则保持列不变