【问题标题】:Replace values in dataframe given count of group by替换给定组数的数据框中的值
【发布时间】:2020-02-05 01:46:13
【问题描述】:

我有一个分类变量的数据框。如果列中该类别的计数小于 100,我想用任意唯一字符串替换一列中的所有字段。

因此,例如,在列颜色中,如果任何颜色出现少于 100 次,我希望将其替换为字符串“base”

我尝试了下面的代码并尝试了我在堆栈溢出时发现的不同的东西。

df['color'] = numpy.where(df.groupby("color").filter(lambda x: len(x) < 100), 'dummy', df['color'])

操作数不能与形状一起广播 (45638872,878) () (8765878782788,)

【问题讨论】:

    标签: python-3.x pandas numpy replace filter


    【解决方案1】:

    IIUC,你需要这个,

    df.loc[df.groupby('color')['color'].transform('count')<100, 'color']= 'dummy'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 2019-02-25
      • 2021-08-25
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      相关资源
      最近更新 更多