我有一个3列的数据框架。我需要在C = 1时从C的中间得到A和B的值。如果C = 1的数量是偶数,我想要中间的第一个
例如,这一个用于奇数C = 1
A B C
w y 0
c v 0
t o 1
e p 1
t b 1
u e 0
q p 0
C = 1时中间的行
A B C
e p 1
因此,它应该返回
df_return
A B C
e p 1
当为偶数时
df_return
A B C
w y 0
c v 0
t o 1
e p 1
t b 1
u e 1
r e 1
u f 1
q p 0
当C = 1时中间的为
A B C
t b 1
u e 1
但是,我只想要其中的一个,它应该是第一个。所以df_return
A B C
t b 1
我该怎么做?
你应该知道的一件事是A和B是有序的
关注相关部分,丢弃持有零的行:
df = df[df.C == 1]
现在很简单了。只需根据长度或.shape
找到中点。
if len(df) > 0:
mid = (len(df) - 1) // 2
return df.iloc[mid, :]