DataFrame があり、列の値 (v) のいずれかが を満たすかどうかを確認したいと思いますx<=v<=y
。
equal = any(df['columnX'] == value) # No problems here
in_between = any(x <= df['columnX'] <= y) # ValueError :/
表示されるエラーは「しかし、すでにValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
使用しています!」です。any()
では、ここで何が問題なのでしょうか? では機能するのに==
、 では機能しないのはなぜでしょうかx<=v<=y
?
ベストアンサー1
使用between
これを行うには、引数を介して範囲値が含まれるかどうかもサポートしますinclusive
。
In [130]:
s = pd.Series(np.random.randn(5))
s
Out[130]:
0 -0.160365
1 1.496937
2 -1.781216
3 0.088023
4 1.325742
dtype: float64
In [131]:
s.between(0,1)
Out[131]:
0 False
1 False
2 False
3 True
4 False
dtype: bool
次に、any
上記を呼び出します。
In [132]:
s.between(0,1).any()
Out[132]:
True