gpt4 book ai didi

python - 在 Pandas 中,找到每组中最小值大于值的行

转载 作者:行者123 更新时间:2023-12-03 23:42:56 25 4
gpt4 key购买 nike

我有一个看起来像这样的数据框:

pd.DataFrame({'A': ['C1', 'C1', 'C1', 'C1', 'C2', 'C2', 'C2', 'C2', 'C3', 'C3', 'C3', 'C3'],
...: 'B': [1, 4, 8, 9, 1, 3, 8, 9, 1, 4, 7, 0]})
Out[40]:
A B
0 C1 1
1 C1 4
2 C1 8
3 C1 9
4 C2 1
5 C2 3
6 C2 8
7 C2 9
8 C3 1
9 C3 4
10 C3 7
11 C3 0
对于A中的每个组,我想找到最小值大于5的行
我生成的数据框应如下所示:
     A  B
2 C1 8
6 C2 8
10 C3 7
我试过这个,但这并没有给我整行
df[df.B >= 4].groupby('A')['B'].min()
我需要改变什么?

最佳答案

使用 idxmin而不是 min提取索引,然后使用 loc :

df.loc[df[df.B > 5].groupby('A')['B'].idxmin()]
输出:
     A  B
2 C1 8
6 C2 8
10 C3 7

或者,您可以使用 sort_values其次是 drop_duplicates :
df[df.B > 5].sort_values('B').drop_duplicates('A')
输出:
     A  B
10 C3 7
2 C1 8
6 C2 8

关于python - 在 Pandas 中,找到每组中最小值大于值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64670637/

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