用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。