arrays used as indices must be of integer or boolean type
Package:
pandas
30911

Exception Class:
IndexError
Raise code
try:
indexer = np.asarray(indexer, dtype=np.intp)
except ValueError as err:
raise ValueError(
"Cannot index with an integer indexer containing NA values"
) from err
else:
raise IndexError("arrays used as indices must be of integer or boolean type")
return indexer
Links to the raise (1)
https://github.com/pandas-dev/pandas/blob/b3e335254f46a526ee3ce9bb757eac4011d9d1fe/pandas/core/indexers.py#L571Ways to fix
Error code:
import pandas as pd
indexer = pd.array(['one','two'])
arr = pd.array([1, 2, 3])
pd.api.indexers.check_array_indexer(arr, indexer)
check_array_indexer
checks if indexer
is a valid array indexer for array
. Take 2 arguments: an array that is being indexed and an indexer that is used to index. The error comes when the indexer has a different data type than integer
and boolean
.
Fix code:
import pandas as pd
indexer = pd.array([0,2])
arr = pd.array([1, 2, 3])
pd.api.indexers.check_array_indexer(arr, indexer)
Add a possible fix
Please authorize to post fix