From fe52c0d6895ed1b0f72e41a34e7f7a1d7a5c92e0 Mon Sep 17 00:00:00 2001 From: Irina Truong Date: Mon, 13 Feb 2023 11:07:59 -0800 Subject: [PATCH] Fix an error with `groupby` `value_counts` for `pandas` 2.0 compatibility (#9928) --- dask/dataframe/groupby.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dask/dataframe/groupby.py b/dask/dataframe/groupby.py index 015ed7fb5d5..570986ae4b6 100644 --- a/dask/dataframe/groupby.py +++ b/dask/dataframe/groupby.py @@ -1520,6 +1520,7 @@ def _single_agg( shuffle=None, chunk_kwargs=None, aggregate_kwargs=None, + columns=None, ): """ Aggregation with a single function/aggfunc rather than a compound spec @@ -1543,7 +1544,9 @@ def _single_agg( with check_numeric_only_deprecation(): meta = func(self._meta_nonempty, **chunk_kwargs) - columns = meta.name if is_series_like(meta) else meta.columns + if columns is None: + columns = meta.name if is_series_like(meta) else meta.columns + args = [self.obj] + (self.by if isinstance(self.by, list) else [self.by]) token = self._token_prefix + token @@ -2954,6 +2957,10 @@ def value_counts(self, split_every=None, split_out=1, shuffle=None): split_every=split_every, split_out=split_out, shuffle=shuffle, + # in pandas 2.0, Series returned from value_counts have a name + # different from original object, but here, column name should + # still reflect the original object name + columns=self._meta.apply(pd.Series).name, ) @derived_from(pd.core.groupby.SeriesGroupBy)