gpt4 book ai didi

python - dataframe.idxmax() - 前 N 次出现

转载 作者:行者123 更新时间:2023-11-28 22:09:26 24 4
gpt4 key购买 nike

Pandas dataframe.idxmax()函数返回请求轴上第一次出现最大值的索引。

有没有办法返回前 N 次出现的索引?

有问题的行:

df2 = df.loc[df.groupby(['columnA', 'columnB'], sort=False)['columnC'].idxmax()]

我希望它根据 df['columnC'] 中的第 N 个最大值返回前 N 个索引。 。所以如果 df['columnC']包含值 5、10、20、50、75、90、100 和 N=3 ,我想要值为 75、90 和 100 的行索引。

编辑:

DataFrame 看起来像这样:

raw_data = {'cities': ['LA', 'LA', 'LA', 'Chicago', 'Chicago', 'Chicago', 'Chicago', 'Boston', 'Boston', 'Boston', 'Boston', 'Boston'], 
'location': ['pub', 'dive', 'club', 'disco', 'cinema', 'cafe', 'diner', 'bowling','supermarket', 'pizza', 'icecream', 'music'],
'distance': ['0', '50', '100', '5', '75', '300', '20', '40', '70', '400', '2000', '2'],
'score': [25, 94, 57, 62, 70, 25, 94, 57, 62, 70, 62, 70]}
df = pd.DataFrame(raw_data, columns = ['cities', 'location', 'distance', 'score'])
df

最佳答案

您想使用nlargest。这是一个例子

In [1]:
import pandas as pd
df = pd.DataFrame({'t' : [0, 8,32, 56, 96, 128],
'T2' : [333, 500, 333, 500, 333, 460],
})
df['t'].nlargest(3).index.tolist()

Out [1]:
[5, 4, 3]

这就是您正在寻找的:

N = 3
df2 = df.loc[df.groupby(['columnA', 'columnB'], sort=False)['columnC'].nlargest(N).index.tolist()]

关于python - dataframe.idxmax() - 前 N 次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57664620/

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