Skip to content

Commit db11e25

Browse files
authored
DEPR: removed deprecated argument obj from GroupBy get_group (#57136)
1 parent c811353 commit db11e25

File tree

3 files changed

+11
-33
lines changed

3 files changed

+11
-33
lines changed

doc/source/whatsnew/v3.0.0.rst

+7
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,13 @@ Deprecations
9696
- Deprecated :meth:`Timestamp.utcnow`, use ``Timestamp.now("UTC")`` instead (:issue:`56680`)
9797
-
9898

99+
.. ---------------------------------------------------------------------------
100+
.. _whatsnew_300.prior_deprecations:
101+
102+
Removal of prior version deprecations/changes
103+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104+
- Removed deprecated argument ``obj`` in :meth:`.DataFrameGroupBy.get_group` and :meth:`.SeriesGroupBy.get_group` (:issue:`53545`)
105+
99106
.. ---------------------------------------------------------------------------
100107
.. _whatsnew_300.performance:
101108

pandas/core/groupby/groupby.py

+4-23
Original file line numberDiff line numberDiff line change
@@ -1049,27 +1049,18 @@ def pipe(
10491049
return com.pipe(self, func, *args, **kwargs)
10501050

10511051
@final
1052-
def get_group(self, name, obj=None) -> DataFrame | Series:
1052+
def get_group(self, name) -> DataFrame | Series:
10531053
"""
10541054
Construct DataFrame from group with provided name.
10551055
10561056
Parameters
10571057
----------
10581058
name : object
10591059
The name of the group to get as a DataFrame.
1060-
obj : DataFrame, default None
1061-
The DataFrame to take the DataFrame out of. If
1062-
it is None, the object groupby was called on will
1063-
be used.
1064-
1065-
.. deprecated:: 2.1.0
1066-
The obj is deprecated and will be removed in a future version.
1067-
Do ``df.iloc[gb.indices.get(name)]``
1068-
instead of ``gb.get_group(name, obj=df)``.
10691060
10701061
Returns
10711062
-------
1072-
same type as obj
1063+
DataFrame or Series
10731064
10741065
Examples
10751066
--------
@@ -1142,18 +1133,8 @@ def get_group(self, name, obj=None) -> DataFrame | Series:
11421133
if not len(inds):
11431134
raise KeyError(name)
11441135

1145-
if obj is None:
1146-
indexer = inds if self.axis == 0 else (slice(None), inds)
1147-
return self._selected_obj.iloc[indexer]
1148-
else:
1149-
warnings.warn(
1150-
"obj is deprecated and will be removed in a future version. "
1151-
"Do ``df.iloc[gb.indices.get(name)]`` "
1152-
"instead of ``gb.get_group(name, obj=df)``.",
1153-
FutureWarning,
1154-
stacklevel=find_stack_level(),
1155-
)
1156-
return obj._take_with_is_copy(inds, axis=self.axis)
1136+
indexer = inds if self.axis == 0 else (slice(None), inds)
1137+
return self._selected_obj.iloc[indexer]
11571138

11581139
@final
11591140
def __iter__(self) -> Iterator[tuple[Hashable, NDFrameT]]:

pandas/tests/groupby/test_groupby.py

-10
Original file line numberDiff line numberDiff line change
@@ -526,16 +526,6 @@ def test_as_index_select_column():
526526
tm.assert_series_equal(result, expected)
527527

528528

529-
def test_obj_arg_get_group_deprecated():
530-
depr_msg = "obj is deprecated"
531-
532-
df = DataFrame({"a": [1, 1, 2], "b": [3, 4, 5]})
533-
expected = df.iloc[df.groupby("b").indices.get(4)]
534-
with tm.assert_produces_warning(FutureWarning, match=depr_msg):
535-
result = df.groupby("b").get_group(4, obj=df)
536-
tm.assert_frame_equal(result, expected)
537-
538-
539529
def test_groupby_as_index_select_column_sum_empty_df():
540530
# GH 35246
541531
df = DataFrame(columns=Index(["A", "B", "C"], name="alpha"))

0 commit comments

Comments
 (0)