|
55 | 55 | )
|
56 | 56 | from pandas.core.dtypes.concat import concat_compat
|
57 | 57 | from pandas.core.dtypes.dtypes import (
|
58 |
| - ArrowDtype, |
59 | 58 | BaseMaskedDtype,
|
60 | 59 | CategoricalDtype,
|
61 | 60 | ExtensionDtype,
|
@@ -979,36 +978,32 @@ def value_counts_arraylike(
|
979 | 978 |
|
980 | 979 |
|
981 | 980 | def duplicated(
|
982 |
| - values: ArrayLike, keep: Literal["first", "last", False] = "first" |
| 981 | + values: ArrayLike, |
| 982 | + keep: Literal["first", "last", False] = "first", |
| 983 | + mask: npt.NDArray[np.bool_] | None = None, |
983 | 984 | ) -> npt.NDArray[np.bool_]:
|
984 | 985 | """
|
985 | 986 | Return boolean ndarray denoting duplicate values.
|
986 | 987 |
|
987 | 988 | Parameters
|
988 | 989 | ----------
|
989 |
| - values : nd.array, ExtensionArray or Series |
| 990 | + values : np.ndarray or ExtensionArray |
990 | 991 | Array over which to check for duplicate values.
|
991 | 992 | keep : {'first', 'last', False}, default 'first'
|
992 | 993 | - ``first`` : Mark duplicates as ``True`` except for the first
|
993 | 994 | occurrence.
|
994 | 995 | - ``last`` : Mark duplicates as ``True`` except for the last
|
995 | 996 | occurrence.
|
996 | 997 | - False : Mark all duplicates as ``True``.
|
| 998 | + mask : ndarray[bool], optional |
| 999 | + array indicating which elements to exclude from checking |
997 | 1000 |
|
998 | 1001 | Returns
|
999 | 1002 | -------
|
1000 | 1003 | duplicated : ndarray[bool]
|
1001 | 1004 | """
|
1002 |
| - if hasattr(values, "dtype"): |
1003 |
| - if isinstance(values.dtype, ArrowDtype) and values.dtype.kind in "ifub": |
1004 |
| - values = values._to_masked() # type: ignore[union-attr] |
1005 |
| - |
1006 |
| - if isinstance(values.dtype, BaseMaskedDtype): |
1007 |
| - values = cast("BaseMaskedArray", values) |
1008 |
| - return htable.duplicated(values._data, keep=keep, mask=values._mask) |
1009 |
| - |
1010 | 1005 | values = _ensure_data(values)
|
1011 |
| - return htable.duplicated(values, keep=keep) |
| 1006 | + return htable.duplicated(values, keep=keep, mask=mask) |
1012 | 1007 |
|
1013 | 1008 |
|
1014 | 1009 | def mode(
|
|
0 commit comments