gpt4 book ai didi

python - Pandas :Groupby 中的语法

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:27 27 4
gpt4 key购买 nike

我有以下数据集:

id window Rank    member
1 2 2 0
1 3 2 0
2 3 1 0
2 2 1 0

我想让 member 在 window==3 时等于 Rank。为此,我有以下命令:

df["member"]= df[df['window']==3]['Rank'][0]

但是,我想在基于 id 的 groupby 语句中执行此操作。下面的命令返回一个错误。这可能是我在这里遗漏的一件简单的事情,但我无法解决如何在上述命令中使用 groupby 的问题。非常感谢任何帮助。

df["member"]= df.groupby("id")[df[df['window']==3]['Rank'][0]]

最佳答案

您可以使用 pandas.DataFrame.where 实现此目的 -

df = pd.DataFrame({'id':[1,1,2,2],'window':[2,3,3,2],'Rank':[2,2,1,1],'member':[0,0,0,0]})
=>
Rank id member window
0 2 1 0 2
1 2 1 0 3
2 1 2 0 3
3 1 2 0 2

df['member'] = df['Rank'].where(df['window']==3, df['member'])

print(df)
=>
Rank id member window
0 2 1 0 2
1 2 1 2 3
2 1 2 1 3
3 1 2 0 2

关于python - Pandas :Groupby 中的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44257750/

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