熊猫遍历索引以查找值



我有一个非常大的实验数据帧。我有一个多索引,它使用列 x,y,z 中的数据定义每个样本 (A,B(:

A   B    x    y     z
0.1  0.1  0.1   0   -1
0.1. 0.1  0.2  -5    0
0.1  0.1  0.4 -10    0 
0.1  0.2  0.6   0   -1
0.1  0.2  0.3  -4 -0.4
0.1  0.2  0.1  -9    0
0.1  0.5  0.2   0    0
0.1  0.5  0.4  -2    0
0.1  0.5  0.3  -5    0
0.2  0.1  0.2  -1   -1
0.2  0.1  0.1  -2   -2
0.2  0.1  0.4  -3    0
... 

我有一个复杂的条件需要填写,但基本上:

  • 如何遍历 A 和 B 的每个值,以找到 y 列的最大值,其中列 z = 0,然后返回满足此条件的所有行的 df

预期产出:

A   B    x    y     z
0.1. 0.1  0.2  -5   0
0.1  0.2  0.1  -9   0
0.1  0.5  0.2   0   0
0.2  0.1  0.4  -3   0

提前谢谢。

你可以试试这个

df.loc[df[df["z"] == 0].groupby(["A","B"])['y'].idxmax()].reset_index(drop=True)
df[(df['z'] == 0) & (df['y'] == df['y'].max())]

output=(df.loc[df['z']==0]).groupby(['A','B'])['y'].max()

感谢纳伦德拉·普拉萨特(Narendra Prasath(为我指明了正确的方向。

最新更新