gpt4 book ai didi

python - Pandas:使用 groupby 计算添加标志

转载 作者:行者123 更新时间:2023-12-01 09:02:53 25 4
gpt4 key购买 nike

我想首先获得按(本例中为组和级别)分组的第三个分位数。

d = pd.DataFrame({'customer': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], 
'group': ['A', 'B', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A'],
'level': ['Z', 'X', 'X', 'X', 'Z', 'Z', 'Z', 'X', 'X', 'Z'],
'value': [0.4, 0.6, 0.7, 0.6, 0.3, 0.5, 0.2, 0.7, 0.5, 0.2]})

d.groupby(['group', 'level']).quantile(0.75)

现在我有了每组的分位数。我想根据 groupby 值在原始 df 上添加一列。

   0.75 value
group level
A X 0.67
Z 0.45
B X 0.65
Z 0.27

结果将是这样的,如果值高于分位数,我将添加一个新列,如果值低于分位数,则添加 1,如果低于分位数,则添加 0。

    customer    group   level   value     new
1 A Z 0.40 1
2 B X 0.60 0

谢谢

最佳答案

IIUC:

d['new'] = (d.value > d.groupby(['group', 'level'])['value']
.transform('quantile', 0.75)).astype(int)

>>> d
customer group level value new
0 1 A Z 0.4 0
1 2 B X 0.6 0
2 3 B X 0.7 1
3 4 A X 0.6 0
4 5 B Z 0.3 1
5 6 A Z 0.5 1
6 7 B Z 0.2 0
7 8 A X 0.7 1
8 9 B X 0.5 0
9 10 A Z 0.2 0

关于python - Pandas:使用 groupby 计算添加标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com