Python 如何在列中对分类值进行编码,以确定在列中出现的次数

Python 如何在列中对分类值进行编码,以确定在列中出现的次数,python,pandas,Python,Pandas,我在熊猫中有以下数据帧 id source 1 AS 2 AS 3 AS 4 AT 5 BR 6 BT 7 BR 8 BT 9 AS 10 BE 在上面的数据帧中,我想做的是,无论哪个源出现次数少于3次,都应该和其他源一样进行编码。我有100万个条目,拥有超过10万个独特来源。我们如何在熊猫身上做到这一点 所需的数据帧是 id source 1

我在熊猫中有以下数据帧

  id    source
  1     AS
  2     AS
  3     AS
  4     AT
  5     BR
  6     BT
  7     BR
  8     BT
  9     AS
  10    BE
在上面的数据帧中,我想做的是,无论哪个源出现次数少于3次,都应该和其他源一样进行编码。我有100万个条目,拥有超过10万个独特来源。我们如何在熊猫身上做到这一点

所需的数据帧是

  id    source
  1     AS
  2     AS
  3     AS
  4     OTHERS
  5     OTHERS
  6     OTHERS
  7     OTHERS
  8     OTHERS
  9     AS
  10    OTHERS
试试这个

df.loc[df.groupby('source').transform('count').lt(3)['id'], 'source'] = 'OTHERS'

试试这个

df.loc[df.groupby('source').transform('count').lt(3)['id'], 'source'] = 'OTHERS'


谢谢你的回答。我在数据框中有多个列,我必须将其与
id
column一起添加吗?我在数据框中有大约70个列。我必须添加所有70列吗?如果您尝试,
df.groupby(by=['source'])。transform(“count”)
将看到转换的作用。谢谢您的回答。我在数据框中有多个列,我必须将其与
id
column一起添加吗?我在数据框中有大约70个列。我必须添加所有70列吗?如果您尝试,
df.groupby(by=['source'])。transform(“count”)
将看到转换的作用。