将某些分类变量更改为统一条目
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
的替代方法是 numpy
的 where
:
df['animals'] = np.where(df['animals'].isin(li),'D',df['animals'])
其中显示:对于动物列中的每一行,检查该值是否在名为 li
的列表中,如果它是 return 'D' , 否则保持列不变
假设我有一个数据框,其中包含一个名为 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
的替代方法是 numpy
的 where
:
df['animals'] = np.where(df['animals'].isin(li),'D',df['animals'])
其中显示:对于动物列中的每一行,检查该值是否在名为 li
的列表中,如果它是 return 'D' , 否则保持列不变