用法:
pandas.api.indexers.check_array_indexer(array, indexer)
检查
indexer
是否是array
的有效数组索引器。对于布尔掩码,
array
和indexer
被检查为具有相同的长度。验证 dtype,如果它是整数或布尔 ExtensionArray,则检查是否存在缺失值,并将其转换为适当的 numpy 数组。其他 dtypes 将引发错误。非数组索引器(整数、切片、省略号、元组、..)按原样传递。
- array:array-like
被索引的数组(仅用于长度)。
- indexer:array-like 或 list-like
用于索引的array-like。 List-like 还不是 numpy 数组或 ExtensionArray 的输入被转换为一个。其他输入类型按原样传递。
- numpy.ndarray
经过验证的索引器作为可用于索引的 numpy 数组。
- 索引错误
当长度不匹配时。
- ValueError
当
indexer
无法转换为 numpy ndarray 以进行索引时(例如,存在缺失值)。
参数:
返回:
抛出:
例子:
检查布尔掩码时,当参数全部有效时返回布尔 ndarray。
>>> mask = pd.array([True, False]) >>> arr = pd.array([1, 2]) >>> pd.api.indexers.check_array_indexer(arr, mask) array([ True, False])
当长度不匹配时引发 IndexError。
>>> mask = pd.array([True, False, True]) >>> pd.api.indexers.check_array_indexer(arr, mask) Traceback (most recent call last): ... IndexError:Boolean index has wrong length:3 instead of 2.
布尔数组中的 NA 值被视为 False。
>>> mask = pd.array([True, pd.NA]) >>> pd.api.indexers.check_array_indexer(arr, mask) array([ True, False])
一个 numpy 布尔掩码将通过(如果长度正确):
>>> mask = np.array([True, False]) >>> pd.api.indexers.check_array_indexer(arr, mask) array([ True, False])
同样对于整数索引器,当它是有效索引器时返回整数 ndarray,否则会出错(对于整数索引器,不需要匹配长度):
>>> indexer = pd.array([0, 2], dtype="Int64") >>> arr = pd.array([1, 2, 3]) >>> pd.api.indexers.check_array_indexer(arr, indexer) array([0, 2])
>>> indexer = pd.array([0, pd.NA], dtype="Int64") >>> pd.api.indexers.check_array_indexer(arr, indexer) Traceback (most recent call last): ... ValueError:Cannot index with an integer indexer containing NA values
对于非整数/布尔数据类型,会引发相应的错误:
>>> indexer = np.array([0., 2.], dtype="float64") >>> pd.api.indexers.check_array_indexer(arr, indexer) Traceback (most recent call last): ... IndexError:arrays used as indices must be of integer or boolean type
相关用法
- Python pandas.api.indexers.FixedForwardWindowIndexer用法及代码示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代码示例
- Python pandas.api.types.is_sparse用法及代码示例
- Python pandas.api.types.is_extension_array_dtype用法及代码示例
- Python pandas.api.types.is_extension_type用法及代码示例
- Python pandas.api.types.is_dict_like用法及代码示例
- Python pandas.api.types.is_float_dtype用法及代码示例
- Python pandas.api.extensions.ExtensionArray.take用法及代码示例
- Python pandas.api.types.is_datetime64_any_dtype用法及代码示例
- Python pandas.api.types.is_hashable用法及代码示例
- Python pandas.api.types.is_categorical用法及代码示例
- Python pandas.api.extensions.ExtensionDtype用法及代码示例
- Python pandas.api.types.is_scalar用法及代码示例
- Python pandas.api.types.is_number用法及代码示例
- Python pandas.api.extensions.ExtensionArray.repeat用法及代码示例
- Python pandas.api.types.is_signed_integer_dtype用法及代码示例
- Python pandas.api.types.is_datetime64tz_dtype用法及代码示例
- Python pandas.api.types.is_datetime64_ns_dtype用法及代码示例
- Python pandas.api.extensions.register_index_accessor用法及代码示例
- Python pandas.api.types.is_datetime64_dtype用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.api.indexers.check_array_indexer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。