是否有更好的方法来检查pandas系列值是否在pandas Interval中:
import pandas as pd, numpy as np
x = pd.Series(np.linspace(4.0,7.8,num=20))
i = pd.Interval(5.0, 6.0, closed='left')
result = (i.left<=x) & (x<i.right)
是否有可能不太明确地计算结果,即不访问i.left
,i.right
,i.closed
?类似于x.isin(i)
或x in i
。
谢谢您的帮助!
您可以使用pandas.cut()
:
bins=[5.0,6.0]
pd.cut(x,bins,right=False).dropna()
5 [5.0, 6.0)
6 [5.0, 6.0)
7 [5.0, 6.0)
8 [5.0, 6.0)
9 [5.0, 6.0)