pandas 检查序列值是否在间隔中

pandas check if Series values are in Interval

提问人:S.V 提问时间:3/28/2020 更新时间:4/5/2020 访问量:1436

问:

有没有更好的方法来检查 pandas 系列值是否在 pandas 间隔中:

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)

是否可以不那么明确地计算结果,即不访问 , , ? 类似 or 的东西。i.lefti.righti.closedx.isin(i)x in i

谢谢你的帮助!

Python Pandas 间隔

评论

2赞 Code Different 3/28/2020
您编写的是最快的解决方案,因为它使用了矢量化代码。您可以使用,但这在大型系列上大约慢 300 倍x.map(i.__contains__)

答:

1赞 denis_smyslov 4/5/2020 #1

你可以用它来: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)