我有一个非常大的实验数据数据框。我有一个Multi索引,它使用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 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
谢谢。
答案 0 :(得分:3)
您可以尝试
df.loc[df[df["z"] == 0].groupby(["A","B"])['y'].idxmax()].reset_index(drop=True)
答案 1 :(得分:0)
df[(df['z'] == 0) & (df['y'] == df['y'].max())]
答案 2 :(得分:0)
output=(df.loc[df['z']==0]).groupby(['A','B'])['y'].max()
感谢Narendra Prasath向我指出了正确的方向。