pandas.Index.isin#
- Index.isin(values, level=None)[源代码]#
返回索引值所在的布尔数组 values 。
计算是否在传递的值集中找到每个索引值的布尔数组。返回的布尔数组的长度与索引的长度匹配。
- 参数
- values类似于集合或列表
寻求价值。
- level字符串或int,可选
要使用的索引级别的名称或位置(如果索引是 MultiIndex )。
- 退货
- np.ndarray[bool]
布尔值的NumPy数组。
参见
Series.isin
系列也是如此。
DataFrame.isin
DataFrames也采用同样的方法。
注意事项
在.的情况下 MultiIndex 您必须指定 values 作为包含长度与级别数相同的元组的类似列表的对象,或指定 level 。否则,它将引发
ValueError
。如果 level 已指定:
如果这是一个人的名字 而且只有一个 索引级别,使用该级别;
否则,应为表示级别位置的数字。
示例
>>> idx = pd.Index([1,2,3]) >>> idx Int64Index([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'])
检查多重索引的“COLOR”级别中的字符串是否在颜色列表中。
>>> midx.isin(['red', 'orange', 'yellow'], level='color') array([ True, False, False])
要检查多重索引的各个级别,请传递一个元组列表:
>>> midx.isin([(1, 'red'), (3, 'red')]) array([ True, False, False])
对于DatetimeIndex,字符串值位于 values 被转换为时间戳。
>>> dates = ['2000-03-11', '2000-03-12', '2000-03-13'] >>> dti = pd.to_datetime(dates) >>> dti DatetimeIndex(['2000-03-11', '2000-03-12', '2000-03-13'], dtype='datetime64[ns]', freq=None)
>>> dti.isin(['2000-03-11']) array([ True, False, False])