【问题标题】:How to make a column of median for each value within groups?如何为组内的每个值制作一列中位数?
【发布时间】:2019-07-31 13:33:31
【问题描述】:

我有三列:BatchID、UnitID 和 Score。

目前,数据集如下所示:

BatchID      UnitID           Score
A123         A123-100         0.111
A123         A123-101         0.121
A123         A123-102         0.101
A123         A123-103         0.102
B456         B456-200         0.211
B456         B456-201         0.221
C789         C789-001         0.199
C789         C789-002         0.189
C789         C789-003         0.192
C789         C789-004         0.201
...          ...              ...

我想添加一个“中位数”列,该列获取每个 BATCH 分数的中位数,并将其放在其余数据旁边(在唯一的 Batch 中为每个单元重复相同的中位数)。像这样的:

BatchID      UnitID           Score      Median
A123         A123-100         0.111      0.1065
A123         A123-101         0.121      0.1065
A123         A123-102         0.101      0.1065
A123         A123-103         0.102      0.1065
B456         B456-200         0.211      0.2160
B456         B456-201         0.221      0.2160
C789         C789-001         0.199      0.1955
C789         C789-002         0.189      0.1955
C789         C789-003         0.192      0.1955
C789         C789-004         0.201      0.1955
...          ...              ...        ...

除其他外,我尝试了 groupby,但鉴于我真的不知道在这种情况下如何使用它,这并没有给我想要的输出。

谢谢!

【问题讨论】:

  • 生成此数据的代码是什么样的?你试过什么代码?
  • df.groupby('BatchID')['Score'].transform('median')
  • 你之前就有过,不要使用有问题的图片或链接。

标签: python pandas pandas-groupby median


【解决方案1】:

groupbytransform 一起使用:

df['Median'] = df.groupby('BatchID')['Score'].transform('median')

输出:

  BatchID    UnitID  Score  Median
0    A123  A123-100  0.111  0.1065
1    A123  A123-101  0.121  0.1065
2    A123  A123-102  0.101  0.1065
3    A123  A123-103  0.102  0.1065
4    B456  B456-200  0.211  0.2160
5    B456  B456-201  0.221  0.2160
6    C789  C789-001  0.199  0.1955
7    C789  C789-002  0.189  0.1955
8    C789  C789-003  0.192  0.1955
9    C789  C789-004  0.201  0.1955

【讨论】:

  • 好的,谢谢!当我尝试对它进行分组时,它只给了我 3 个不同的组,我不知道使用变换
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多