gpt4 book ai didi

python - Groupby 列保留多行的最小值

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

我有一个数据框,其中包含两列 ID 和一列数值。我想对第一个 id 列进行分组,并保留所有行对应于第二列中的最小值,以便在需要时保留多行。

这是我的 Pandas 数据框

id1 id2 num1
1 1 9
1 1 4
1 2 4
1 2 3
1 3 7
2 6 9
2 6 1
2 6 5
2 9 3
2 9 7
3 2 8
3 4 2
3 4 7
3 4 9
3 4 10

我想要的是:

id1 id2 num1
1 1 9
1 1 4
2 6 9
2 6 1
2 6 5
3 2 8

我试图保留最小值,找到 idxmin() 或删除重复项,但最终每个 id1 和 id2 只得到一行。

firstS.groupby('id1')['id2'].transform(min)

非常感谢!

最佳答案

你很接近,只需要将 id2 列与 transform 进行比较系列 并按 boolean indexing 过滤:

df = firstS[firstS['id2'] == firstS.groupby('id1')['id2'].transform(min)]
print (df)
id1 id2 num1
0 1 1 9
1 1 1 4
5 2 6 9
6 2 6 1
7 2 6 5
10 3 2 8

关于python - Groupby 列保留多行的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54236175/

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