pandas.Index.isin#

Index.isin(values, level=None)[源代码]#

返回一个布尔数组,其中索引值在 values 中。

计算布尔数组,指示每个索引值是否包含在传入的值集中。返回的布尔数组的长度与索引的长度相同。

Parameters:
valuesset 或类列表

要查找的值。

levelstr 或 int,可选

要使用的索引级别的名称或位置(如果索引是 MultiIndex)。

Returns:
np.ndarray[bool]

布尔值的 NumPy 数组。

参见

Series.isin

Series 同样适用。

DataFrame.isin

DataFrame 的相同方法。

Notes

对于 MultiIndex,您必须要么将 values 指定为包含元组(元组长度与级别数相同)的类列表对象,要么指定 level。否则将引发 ValueError

如果指定了 level

  • 如果它是 一个且仅一个 索引级别的名称,则使用该级别;

  • 否则它应该是一个表示级别位置的数字。

Examples

>>> idx = pd.Index([1,2,3])
>>> idx
Index([1, 2, 3], dtype='int64')

检查列表中的每个索引值是否在值列表中。

>>> idx.isin([1, 4])
array([ True, False, False])
>>> midx = pd.MultiIndex.from_arrays([[1,2,3],
...                                  ['red', 'blue', 'green']],
...                                  names=('number', 'color'))
>>> midx
MultiIndex([(1,   'red'),
            (2,  'blue'),
            (3, 'green')],
           names=['number', 'color'])

检查MultiIndex的“color”级别中的字符串是否在颜色列表中。

>>> midx.isin(['red', 'orange', 'yellow'], level='color')
array([ True, False, False])

要跨MultiIndex的级别进行检查,请传递一个元组列表:

>>> midx.isin([(1, 'red'), (3, 'red')])
array([ True, False, False])