我有一个数据框df:
num1 | count | count_min | count_max
a | 10 | 5 | 10
b | 15 | 6 | 11
c | 3 | NaN | NaN
我想过滤掉不在count_min和count_max之间的每个计数。
但是,如果count_min / count_max为NaN,则应保留该行。
最终结果应为:
num1 | count | count_min | count_max
a | 10 | 5 | 10
c | 3 | NaN | NaN
因此,在应用过滤器之前,我需要在查询中使用if / else之类的内容来检查count_min / count_max是否为NaN。
如何使用查询语法来实现此目的,例如:
df = df.query("count >= count_min and count <= count_max")
?
In [4487]: df = df[df['count'].between(df.count_min, df.count_max) | (df.count_max.isna() | df.count_min.isna())]
In [4487]: df
Out[4487]:
num1 count count_min count_max
0 a 10 5.0 10.0
2 c 3 NaN NaN
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句