У меня возникла аналогичная проблема, когда я менял сигнатуры методов в своем приложении. Очистка и восстановление моего проекта разрешили «NoSuchMethodError».
Для существующих совпадений используйте query
:
df.query(' A > 3' ).head(1)
Out[33]:
A B C
2 4 6 3
df.query(' A > 4 and B > 3' ).head(1)
Out[34]:
A B C
4 5 4 5
df.query(' A > 3 and (B > 3 or C > 2)' ).head(1)
Out[35]:
A B C
2 4 6 3
вы можете позаботиться о первых 3 предметах с нарезкой и головой:
df[df.A>=4].head(1)
df[(df.A>=4)&(df.B>=3)].head(1)
df[(df.A>=4)&((df.B>=3) * (df.C>=2))].head(1)
Условие в случае, если ничего не возвращается, вы можете обрабатывать с помощью try или if, если ...
try:
output = df[df.A>=6].head(1)
assert len(output) == 1
except:
output = df.sort_values('A',ascending=False).head(1)