我有一个非常大的实验数据帧。我有一个多索引,它使用列 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(为我指明了正确的方向。