From cd232bb2eb31d71401d3e57633d07764cf51be6b Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Sun, 20 Dec 2020 23:10:28 +0100 Subject: [PATCH 01/26] add test --- pandas/tests/generic/methods/test_sample.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pandas/tests/generic/methods/test_sample.py b/pandas/tests/generic/methods/test_sample.py index b26a3785f918d..b0b8bfd470a31 100644 --- a/pandas/tests/generic/methods/test_sample.py +++ b/pandas/tests/generic/methods/test_sample.py @@ -3,7 +3,7 @@ from pandas.compat.numpy import np_version_under1p17 -from pandas import DataFrame, Series +from pandas import DataFrame, Series, Index import pandas._testing as tm import pandas.core.common as com @@ -305,3 +305,13 @@ def test_sample_is_copy(self): with tm.assert_produces_warning(None): df2["d"] = 1 + + def test_sample_ignore_index(self): + # GH 38581 + df = DataFrame( + {"col1": range(10, 20), "col2": range(20, 30), "colString": ["a"] * 10} + ) + seed = 2020 + result = df.sample(3, ignore_index=True, random_state=2020) + expected_index = Index([0, 1, 2]) + tm.assert_index_equal(result.index, expected_index) From 57a9c5baa5dc5fb5ec5caba1785b24d68e341e78 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Sun, 20 Dec 2020 23:19:37 +0100 Subject: [PATCH 02/26] add type hints --- pandas/core/generic.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 57b0f7064e69f..06a8d307b87f1 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5134,12 +5134,13 @@ def tail(self: FrameOrSeries, n: int = 5) -> FrameOrSeries: @final def sample( self: FrameOrSeries, - n=None, - frac=None, - replace=False, - weights=None, - random_state=None, - axis=None, + n: Optional[int] = None, + frac: Optional[float] = None, + replace: bool = False, + weights: Optional[str, np.ndarray] = None, + random_state: Optional[int, arraylike, np.random.BitGenerator, np.random.RandomState] = None, + axis: Optional[int, str] = None, + ignore_index: Optional[bool] = False ) -> FrameOrSeries: """ Return a random sample of items from an axis of object. @@ -5181,6 +5182,7 @@ def sample( axis : {0 or ‘index’, 1 or ‘columns’, None}, default None Axis to sample. Accepts axis number or name. Default is stat axis for given data type (0 for Series and DataFrames). + ignore_index Returns ------- From 954944e440609975a3658631ec34e0ad0fb7fc1d Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Sun, 20 Dec 2020 23:25:50 +0100 Subject: [PATCH 03/26] add ignore index to dataframe.sample --- pandas/core/generic.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 06a8d307b87f1..c4631a6220ba5 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5182,7 +5182,10 @@ def sample( axis : {0 or ‘index’, 1 or ‘columns’, None}, default None Axis to sample. Accepts axis number or name. Default is stat axis for given data type (0 for Series and DataFrames). - ignore_index + ignore_index: bool + If True, the resulting index will be labeled 0, 1, …, n - 1. + + .. versionadded:: 1.2.0 Returns ------- @@ -5340,7 +5343,11 @@ def sample( ) locs = rs.choice(axis_length, size=n, replace=replace, p=weights) - return self.take(locs, axis=axis) + result = self.take(locs, axis=axis) + if ignore_index: + result.index = ibase.default_index(len(result)) + + return result @final @doc(klass=_shared_doc_kwargs["klass"]) From 9883480d04708b45977220d2a857219b9042ecf4 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Sun, 20 Dec 2020 23:27:43 +0100 Subject: [PATCH 04/26] fix line length --- pandas/core/generic.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index c4631a6220ba5..8f29c7e86e96e 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5138,9 +5138,11 @@ def sample( frac: Optional[float] = None, replace: bool = False, weights: Optional[str, np.ndarray] = None, - random_state: Optional[int, arraylike, np.random.BitGenerator, np.random.RandomState] = None, + random_state: Optional[ + int, arraylike, np.random.BitGenerator, np.random.RandomState + ] = None, axis: Optional[int, str] = None, - ignore_index: Optional[bool] = False + ignore_index: Optional[bool] = False, ) -> FrameOrSeries: """ Return a random sample of items from an axis of object. From 38fa8303eff05e4d2eb71092ae07fc7f93c0e589 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Sun, 20 Dec 2020 23:32:10 +0100 Subject: [PATCH 05/26] added whatsnew entry --- doc/source/whatsnew/v1.2.0.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/source/whatsnew/v1.2.0.rst b/doc/source/whatsnew/v1.2.0.rst index e2521cedb64cc..82018ec416578 100644 --- a/doc/source/whatsnew/v1.2.0.rst +++ b/doc/source/whatsnew/v1.2.0.rst @@ -309,6 +309,7 @@ Other enhancements - Implement method ``cross`` for :meth:`DataFrame.merge` and :meth:`DataFrame.join` (:issue:`5401`) - When :func:`read_csv/sas/json` are called with ``chuncksize``/``iterator`` they can be used in a ``with`` statement as they return context-managers (:issue:`38225`) - Augmented the list of named colors available for styling Excel exports, enabling all of CSS4 colors (:issue:`38247`) +- :meth:`DataFrame.sample` now accept the ``ignore_index`` argument to reset the index after samplng, similar to :meth:`DataFrame.drop_duplicates` and `DataFrame.sort_values` (:issue:`38581`) .. --------------------------------------------------------------------------- From 69c3e99e7208e15f2a38d5008de0272982788966 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Sun, 20 Dec 2020 23:35:59 +0100 Subject: [PATCH 06/26] typo in whatsnew entry --- doc/source/whatsnew/v1.2.0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/whatsnew/v1.2.0.rst b/doc/source/whatsnew/v1.2.0.rst index 82018ec416578..113d51aff6865 100644 --- a/doc/source/whatsnew/v1.2.0.rst +++ b/doc/source/whatsnew/v1.2.0.rst @@ -309,7 +309,7 @@ Other enhancements - Implement method ``cross`` for :meth:`DataFrame.merge` and :meth:`DataFrame.join` (:issue:`5401`) - When :func:`read_csv/sas/json` are called with ``chuncksize``/``iterator`` they can be used in a ``with`` statement as they return context-managers (:issue:`38225`) - Augmented the list of named colors available for styling Excel exports, enabling all of CSS4 colors (:issue:`38247`) -- :meth:`DataFrame.sample` now accept the ``ignore_index`` argument to reset the index after samplng, similar to :meth:`DataFrame.drop_duplicates` and `DataFrame.sort_values` (:issue:`38581`) +- :meth:`DataFrame.sample` now accepts the ``ignore_index`` argument to reset the index after sampling, similar to :meth:`DataFrame.drop_duplicates` and `DataFrame.sort_values` (:issue:`38581`) .. --------------------------------------------------------------------------- From b71e1494026c423ed37bd1fe65f2e1a0e6739bfd Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Sun, 20 Dec 2020 23:40:58 +0100 Subject: [PATCH 07/26] remove unused variable --- pandas/tests/generic/methods/test_sample.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pandas/tests/generic/methods/test_sample.py b/pandas/tests/generic/methods/test_sample.py index b0b8bfd470a31..91984b5476d8e 100644 --- a/pandas/tests/generic/methods/test_sample.py +++ b/pandas/tests/generic/methods/test_sample.py @@ -311,7 +311,6 @@ def test_sample_ignore_index(self): df = DataFrame( {"col1": range(10, 20), "col2": range(20, 30), "colString": ["a"] * 10} ) - seed = 2020 - result = df.sample(3, ignore_index=True, random_state=2020) + result = df.sample(3, ignore_index=True) expected_index = Index([0, 1, 2]) tm.assert_index_equal(result.index, expected_index) From 00ab22b8292f3b4c45308add9ca4a2c01a299c92 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Mon, 21 Dec 2020 00:57:55 +0100 Subject: [PATCH 08/26] moved whatsnew to 1.3.0 --- doc/source/whatsnew/v1.2.0.rst | 1 - doc/source/whatsnew/v1.3.0.rst | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/whatsnew/v1.2.0.rst b/doc/source/whatsnew/v1.2.0.rst index 113d51aff6865..e2521cedb64cc 100644 --- a/doc/source/whatsnew/v1.2.0.rst +++ b/doc/source/whatsnew/v1.2.0.rst @@ -309,7 +309,6 @@ Other enhancements - Implement method ``cross`` for :meth:`DataFrame.merge` and :meth:`DataFrame.join` (:issue:`5401`) - When :func:`read_csv/sas/json` are called with ``chuncksize``/``iterator`` they can be used in a ``with`` statement as they return context-managers (:issue:`38225`) - Augmented the list of named colors available for styling Excel exports, enabling all of CSS4 colors (:issue:`38247`) -- :meth:`DataFrame.sample` now accepts the ``ignore_index`` argument to reset the index after sampling, similar to :meth:`DataFrame.drop_duplicates` and `DataFrame.sort_values` (:issue:`38581`) .. --------------------------------------------------------------------------- diff --git a/doc/source/whatsnew/v1.3.0.rst b/doc/source/whatsnew/v1.3.0.rst index 7671962018144..40a6b3eb82284 100644 --- a/doc/source/whatsnew/v1.3.0.rst +++ b/doc/source/whatsnew/v1.3.0.rst @@ -41,6 +41,7 @@ Other enhancements - Added :meth:`MultiIndex.dtypes` (:issue:`37062`) - Improve error message when ``usecols`` and ``names`` do not match for :func:`read_csv` and ``engine="c"`` (:issue:`29042`) +- :meth:`DataFrame.sample` now accepts the ``ignore_index`` argument to reset the index after sampling, similar to :meth:`DataFrame.drop_duplicates` and :meth:`DataFrame.sort_values` (:issue:`38581`) .. --------------------------------------------------------------------------- From c49626f10bd78c4068746ea5fa953d560ba12981 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Mon, 21 Dec 2020 00:58:25 +0100 Subject: [PATCH 09/26] versionadded bumped to 1.3.0 --- pandas/core/generic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 8f29c7e86e96e..e255e236b1d28 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5187,7 +5187,7 @@ def sample( ignore_index: bool If True, the resulting index will be labeled 0, 1, …, n - 1. - .. versionadded:: 1.2.0 + .. versionadded:: 1.3.0 Returns ------- From 03fef32bd6cc97643b5697e78425d2d057f678b8 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Mon, 21 Dec 2020 01:07:12 +0100 Subject: [PATCH 10/26] fix isort error --- pandas/tests/generic/methods/test_sample.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/generic/methods/test_sample.py b/pandas/tests/generic/methods/test_sample.py index 91984b5476d8e..b0f2372789407 100644 --- a/pandas/tests/generic/methods/test_sample.py +++ b/pandas/tests/generic/methods/test_sample.py @@ -3,7 +3,7 @@ from pandas.compat.numpy import np_version_under1p17 -from pandas import DataFrame, Series, Index +from pandas import DataFrame, Index, Series import pandas._testing as tm import pandas.core.common as com From 529f6beba262b56f575d5c72d379319443e1187e Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Mon, 21 Dec 2020 02:01:55 +0100 Subject: [PATCH 11/26] fix typing --- pandas/core/generic.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index e255e236b1d28..29fbdcde05758 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5136,13 +5136,13 @@ def sample( self: FrameOrSeries, n: Optional[int] = None, frac: Optional[float] = None, - replace: bool = False, - weights: Optional[str, np.ndarray] = None, + replace: bool_t = False, + weights: Union[str, np.ndarray] = None, random_state: Optional[ - int, arraylike, np.random.BitGenerator, np.random.RandomState + Union[int, arraylike, np.random.BitGenerator, np.random.RandomState] ] = None, - axis: Optional[int, str] = None, - ignore_index: Optional[bool] = False, + axis: Union[int, str] = None, + ignore_index: Optional[bool_t] = False, ) -> FrameOrSeries: """ Return a random sample of items from an axis of object. @@ -5184,7 +5184,7 @@ def sample( axis : {0 or ‘index’, 1 or ‘columns’, None}, default None Axis to sample. Accepts axis number or name. Default is stat axis for given data type (0 for Series and DataFrames). - ignore_index: bool + ignore_index : bool If True, the resulting index will be labeled 0, 1, …, n - 1. .. versionadded:: 1.3.0 From 335c8e69546f4d6aec0a36d8d56cb549aad621ce Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Tue, 22 Dec 2020 00:01:06 +0100 Subject: [PATCH 12/26] fix type hints --- pandas/core/generic.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 29fbdcde05758..5d85b16b8ebd3 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -36,6 +36,7 @@ from pandas._libs.tslibs import Period, Tick, Timestamp, to_offset from pandas._typing import ( Axis, + ArrayLike, CompressionOptions, FilePathOrBuffer, FrameOrSeries, @@ -5137,11 +5138,11 @@ def sample( n: Optional[int] = None, frac: Optional[float] = None, replace: bool_t = False, - weights: Union[str, np.ndarray] = None, + weights: Optional[Union[str, ArrayLike]] = None, random_state: Optional[ Union[int, arraylike, np.random.BitGenerator, np.random.RandomState] ] = None, - axis: Union[int, str] = None, + axis: Optional[Axis] = None, ignore_index: Optional[bool_t] = False, ) -> FrameOrSeries: """ From 094782a408a36be1f9bd9ea3519325f7ef3c8529 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Tue, 22 Dec 2020 00:02:51 +0100 Subject: [PATCH 13/26] replace arraylike --- pandas/core/generic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 5d85b16b8ebd3..0355f357b8415 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5140,7 +5140,7 @@ def sample( replace: bool_t = False, weights: Optional[Union[str, ArrayLike]] = None, random_state: Optional[ - Union[int, arraylike, np.random.BitGenerator, np.random.RandomState] + Union[int, ArrayLike, np.random.BitGenerator, np.random.RandomState] ] = None, axis: Optional[Axis] = None, ignore_index: Optional[bool_t] = False, From 14d670c1e54eb36ff61818336c820b1e4a293182 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Tue, 22 Dec 2020 00:25:48 +0100 Subject: [PATCH 14/26] fix isort --- pandas/core/generic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 0355f357b8415..abc4a29f18aa3 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -35,8 +35,8 @@ from pandas._libs import lib from pandas._libs.tslibs import Period, Tick, Timestamp, to_offset from pandas._typing import ( - Axis, ArrayLike, + Axis, CompressionOptions, FilePathOrBuffer, FrameOrSeries, From 8b674eb166f4d70bdd89c6795b356ebc298fc4e8 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Tue, 22 Dec 2020 13:34:53 +0100 Subject: [PATCH 15/26] move RandomState to typing --- pandas/_typing.py | 3 +++ pandas/core/generic.py | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index c79942c48509e..618a2cfd4b470 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -158,3 +158,6 @@ ColspaceArgType = Union[ str, int, Sequence[Union[str, int]], Mapping[Label, Union[str, int]] ] + +# random generator +RandomState = Optional[Union[int, ArrayLike, np.random.BitGenerator, np.random.RandomState]] diff --git a/pandas/core/generic.py b/pandas/core/generic.py index abc4a29f18aa3..cb5168d4a6458 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -45,6 +45,7 @@ JSONSerializable, Label, Level, + RandomState, Renamer, StorageOptions, TimedeltaConvertibleTypes, @@ -5139,9 +5140,7 @@ def sample( frac: Optional[float] = None, replace: bool_t = False, weights: Optional[Union[str, ArrayLike]] = None, - random_state: Optional[ - Union[int, ArrayLike, np.random.BitGenerator, np.random.RandomState] - ] = None, + random_state: RandomState = None, axis: Optional[Axis] = None, ignore_index: Optional[bool_t] = False, ) -> FrameOrSeries: From a5159e58fb82a431ef864a88165735418349c43e Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Tue, 22 Dec 2020 19:20:05 +0100 Subject: [PATCH 16/26] remove optional --- pandas/_typing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index 618a2cfd4b470..33546a5e3c907 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -160,4 +160,4 @@ ] # random generator -RandomState = Optional[Union[int, ArrayLike, np.random.BitGenerator, np.random.RandomState]] +RandomState = Union[int, ArrayLike, np.random.BitGenerator, np.random.RandomState] From 7ef10ae50712c6fe02b612987f2bff85e5257091 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Tue, 22 Dec 2020 19:35:48 +0100 Subject: [PATCH 17/26] fix generator and Optional --- pandas/_typing.py | 2 +- pandas/core/generic.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index 33546a5e3c907..e395cfb3e0173 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -160,4 +160,4 @@ ] # random generator -RandomState = Union[int, ArrayLike, np.random.BitGenerator, np.random.RandomState] +RandomState = Union[int, ArrayLike, np.random.Generator, np.random.RandomState] diff --git a/pandas/core/generic.py b/pandas/core/generic.py index cb5168d4a6458..cf09092051da4 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5140,7 +5140,7 @@ def sample( frac: Optional[float] = None, replace: bool_t = False, weights: Optional[Union[str, ArrayLike]] = None, - random_state: RandomState = None, + random_state: Optional[RandomState] = None, axis: Optional[Axis] = None, ignore_index: Optional[bool_t] = False, ) -> FrameOrSeries: From b8963b88068425d52b491e24e722320e8cb3730f Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Wed, 23 Dec 2020 09:33:37 +0100 Subject: [PATCH 18/26] check for np version --- pandas/_typing.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index e395cfb3e0173..cdcec29f65510 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -21,6 +21,8 @@ Union, ) +from pandas.compat.numpy import np_version_under1p17 + import numpy as np # To prevent import cycles place any internal imports in the branch below @@ -160,4 +162,7 @@ ] # random generator -RandomState = Union[int, ArrayLike, np.random.Generator, np.random.RandomState] +if np_version_under1p17: + RandomState = Union[int, ArrayLike, np.random.Generator, np.random.RandomState] +else: + RandomState = Union[int, ArrayLike, np.random.RandomState] From 7f4606c01158cf47f2de732a95716745cce383f5 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Wed, 23 Dec 2020 09:40:44 +0100 Subject: [PATCH 19/26] fix isort --- pandas/_typing.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index cdcec29f65510..6518c124f27a3 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -21,9 +21,8 @@ Union, ) -from pandas.compat.numpy import np_version_under1p17 - import numpy as np +from pandas.compat.numpy import np_version_under1p17 # To prevent import cycles place any internal imports in the branch below # and use a string literal forward reference to it in subsequent types From 8507c9f59131cdf8508267a522185d902f3df308 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Fri, 25 Dec 2020 13:21:30 +0100 Subject: [PATCH 20/26] fix if else --- pandas/_typing.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index 6518c124f27a3..510375caf2754 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -162,6 +162,6 @@ # random generator if np_version_under1p17: - RandomState = Union[int, ArrayLike, np.random.Generator, np.random.RandomState] -else: RandomState = Union[int, ArrayLike, np.random.RandomState] +else: + RandomState = Union[int, ArrayLike, np.random.Generator, np.random.RandomState] From 3427e15c6e63657da8f689b4a637ee7f9d29d2de Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Fri, 25 Dec 2020 21:24:11 +0100 Subject: [PATCH 21/26] fix isort --- pandas/_typing.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pandas/_typing.py b/pandas/_typing.py index bd52c269355c2..fbb1c259ed84f 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -22,6 +22,7 @@ ) import numpy as np + from pandas.compat.numpy import np_version_under1p17 # To prevent import cycles place any internal imports in the branch below From ad64f3f45ee57aafe8daa8580688421f2a7bea54 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Thu, 31 Dec 2020 13:26:57 +0100 Subject: [PATCH 22/26] add type annotation --- pandas/_typing.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index 292cce6566838..f79d81e556a94 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -165,6 +165,6 @@ # random generator if np_version_under1p17: - RandomState = Union[int, ArrayLike, np.random.RandomState] + RandomState = Type[Union[int, ArrayLike, np.random.RandomState]] else: - RandomState = Union[int, ArrayLike, np.random.Generator, np.random.RandomState] + RandomState = Type[Union[int, ArrayLike, np.random.Generator, np.random.RandomState]] From 4c78626d0b6e6d8ac9d4f10ab177975327ca1949 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Thu, 31 Dec 2020 13:34:53 +0100 Subject: [PATCH 23/26] changes black --- pandas/_typing.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index f79d81e556a94..79f97aaa0cfc7 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -167,4 +167,6 @@ if np_version_under1p17: RandomState = Type[Union[int, ArrayLike, np.random.RandomState]] else: - RandomState = Type[Union[int, ArrayLike, np.random.Generator, np.random.RandomState]] + RandomState = Type[ + Union[int, ArrayLike, np.random.Generator, np.random.RandomState] + ] From 8c70c98f3abc8398618f2d4119a92889ef423b8f Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Thu, 31 Dec 2020 16:44:25 +0100 Subject: [PATCH 24/26] remove typing RandomState --- pandas/_typing.py | 8 -------- pandas/core/generic.py | 3 +-- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index 79f97aaa0cfc7..569f66f10154f 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -162,11 +162,3 @@ ColspaceArgType = Union[ str, int, Sequence[Union[str, int]], Mapping[Label, Union[str, int]] ] - -# random generator -if np_version_under1p17: - RandomState = Type[Union[int, ArrayLike, np.random.RandomState]] -else: - RandomState = Type[ - Union[int, ArrayLike, np.random.Generator, np.random.RandomState] - ] diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 139a98884a6b7..16bca10c599aa 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -45,7 +45,6 @@ JSONSerializable, Label, Level, - RandomState, Renamer, StorageOptions, TimedeltaConvertibleTypes, @@ -5149,7 +5148,7 @@ def sample( frac: Optional[float] = None, replace: bool_t = False, weights: Optional[Union[str, ArrayLike]] = None, - random_state: Optional[RandomState] = None, + random_state: Optional[Any] = None, axis: Optional[Axis] = None, ignore_index: Optional[bool_t] = False, ) -> FrameOrSeries: From cf394e04030b88bdd50b1a0d6f7a881c96c299c3 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Thu, 31 Dec 2020 16:54:52 +0100 Subject: [PATCH 25/26] remove import --- pandas/_typing.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index 569f66f10154f..0b50dd69f7abb 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -23,8 +23,6 @@ import numpy as np -from pandas.compat.numpy import np_version_under1p17 - # To prevent import cycles place any internal imports in the branch below # and use a string literal forward reference to it in subsequent types # https://mypy.readthedocs.io/en/latest/common_issues.html#import-cycles From aed0f04db87b5856d7fe1e111d418e4966691f36 Mon Sep 17 00:00:00 2001 From: Erfan Nariman Date: Thu, 31 Dec 2020 18:41:33 +0100 Subject: [PATCH 26/26] remove any random state --- pandas/core/generic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 16bca10c599aa..fbf2c35ce85a0 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5148,7 +5148,7 @@ def sample( frac: Optional[float] = None, replace: bool_t = False, weights: Optional[Union[str, ArrayLike]] = None, - random_state: Optional[Any] = None, + random_state=None, axis: Optional[Axis] = None, ignore_index: Optional[bool_t] = False, ) -> FrameOrSeries: