gpt4 book ai didi

python - 我将如何根据 Pandas 中的另一个行条件在 groupby 对象中排名?示例包括

转载 作者:行者123 更新时间:2023-12-04 00:56:16 25 4
gpt4 key购买 nike

下面的数据框有 4 列:runner_name、race_date、height_in_inches、top_ten_finish。

我想按 race_date 进行分组,如果该运行者在该 race_date 中名列前十,则将他的 height_in_inches 排在该 race_date 中名列前十的其他运行者中。我该怎么做?

这是原始数据框:

>>> import pandas as pd>>> d = {"runner":['mike','paul','jim','dave','douglas'],...     "race_date":['2019-02-02','2019-02-02','2020-02-02','2020-02-01','2020-02-01'],...      "height_in_inches":[72,68,70,74,73],...     "top_ten_finish":["yes","yes","no","yes","no"]}>>> df = pd.DataFrame(d)>>> df    runner   race_date  height_in_inches top_ten_finish0     mike  2019-02-02                72            yes1     paul  2019-02-02                68            yes2      jim  2020-02-02                70             no3     dave  2020-02-01                74            yes4  douglas  2020-02-01                73             no>>> 

这就是我想要的结果。请注意,如果他们没有进入比赛的前 10 名,他们将如何获得该新列的值 0。

    runner   race_date  height_in_inches top_ten_finish  if_top_ten_height_rank0     mike  2019-02-02                72            yes                       11     paul  2019-02-02                68            yes                       22      jim  2020-02-02                70             no                       03     dave  2020-02-01                74            yes                       14  douglas  2020-02-01                73             no                       0

谢谢!

最佳答案

我们可以使用 groupby + filter with rank

df['rank']=df[df.top_ten_finish.eq('yes')].groupby('race_date')['height_in_inches'].rank(ascending=False)
df['rank'].fillna(0,inplace=True)
df
Out[87]:
runner race_date height_in_inches top_ten_finish rank
0 mike 2019-02-02 72 yes 1.0
1 paul 2019-02-02 68 yes 2.0
2 jim 2020-02-02 70 no 0.0
3 dave 2020-02-01 74 yes 1.0
4 douglas 2020-02-01 73 no 0.0

关于python - 我将如何根据 Pandas 中的另一个行条件在 groupby 对象中排名?示例包括,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62325851/

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