gpt4 book ai didi

python-3.x - 计算同一组中有多少行在 Pandas DataFrame 中的每一行的给定列中具有较大的值

转载 作者:行者123 更新时间:2023-12-02 00:50:19 25 4
gpt4 key购买 nike

我有一个带有组字段和感兴趣变量的 Pandas 数据框。对于数据框中的每一行,我想计算同一组中有多少行对感兴趣的变量具有较大的值。

下面是我正在努力实现的一个例子:

import pandas as pd
df = pd.DataFrame(data = [['a',1],['a',2],['a',2],['a',3],['b',4],['b',2],['b',6]],
columns = ['groups','value'])
df
  groups value
0 a 1
1 a 2
2 a 2
3 a 3
4 b 4
5 b 2
6 b 6

这是我希望收到的输出:

  groups value what_i_want
0 a 1 3
1 a 2 1
2 a 2 1
3 a 3 0
4 b 4 1
5 b 2 2
6 b 6 0

我知道我可以通过遍历数据框的每一行来得到这个答案,但是我也知道遍历数据框的行是最后的手段,而且我的完整数据集要大得多,这将需要很长时间才能运行.我假设有某种方法可以使用 groupby 或应用来执行此操作,但我无法弄清楚。

谢谢!

最佳答案

IIUC 排名

(-df.value).groupby(df['groups']).rank(method='min')-1
Out[466]:
0 3.0
1 1.0
2 1.0
3 0.0
4 1.0
5 2.0
6 0.0
Name: value, dtype: float64

#df['what i want']=(-df.value).groupby(df['groups']).rank(method='min')-1

关于python-3.x - 计算同一组中有多少行在 Pandas DataFrame 中的每一行的给定列中具有较大的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58142744/

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