diff --git a/pandas/tests/extension/base/methods.py b/pandas/tests/extension/base/methods.py index 22e53dbc89f01..d8ba6ced187cb 100644 --- a/pandas/tests/extension/base/methods.py +++ b/pandas/tests/extension/base/methods.py @@ -28,6 +28,18 @@ def test_value_counts(self, all_data, dropna): self.assert_series_equal(result, expected) + def test_value_counts_with_normalize(self, data): + # GH 33172 + data = data[:10].unique() + values = np.array(data[~data.isna()]) + + result = ( + pd.Series(data, dtype=data.dtype).value_counts(normalize=True).sort_index() + ) + + expected = pd.Series([1 / len(values)] * len(values), index=result.index) + self.assert_series_equal(result, expected) + def test_count(self, data_missing): df = pd.DataFrame({"A": data_missing}) result = df.count(axis="columns") diff --git a/pandas/tests/extension/decimal/test_decimal.py b/pandas/tests/extension/decimal/test_decimal.py index f4ffcb8d0f109..233b658d29782 100644 --- a/pandas/tests/extension/decimal/test_decimal.py +++ b/pandas/tests/extension/decimal/test_decimal.py @@ -181,6 +181,10 @@ def test_value_counts(self, all_data, dropna): tm.assert_series_equal(result, expected) + @pytest.mark.xfail(reason="value_counts not implemented yet.") + def test_value_counts_with_normalize(self, data): + return super().test_value_counts_with_normalize(data) + class TestCasting(BaseDecimal, base.BaseCastingTests): pass diff --git a/pandas/tests/extension/json/test_json.py b/pandas/tests/extension/json/test_json.py index d086896fb09c3..85a2ec8bc70ac 100644 --- a/pandas/tests/extension/json/test_json.py +++ b/pandas/tests/extension/json/test_json.py @@ -193,6 +193,10 @@ class TestMethods(BaseJSON, base.BaseMethodsTests): def test_value_counts(self, all_data, dropna): pass + @unhashable + def test_value_counts_with_normalize(self, data): + pass + @unhashable def test_sort_values_frame(self): # TODO (EA.factorize): see if _values_for_factorize allows this. diff --git a/pandas/tests/extension/test_numpy.py b/pandas/tests/extension/test_numpy.py index aa5a99282131a..1c887cc4371b6 100644 --- a/pandas/tests/extension/test_numpy.py +++ b/pandas/tests/extension/test_numpy.py @@ -199,6 +199,10 @@ class TestMethods(BaseNumPyTests, base.BaseMethodsTests): def test_value_counts(self, all_data, dropna): pass + @pytest.mark.xfail(reason="not working. will be covered by #32028") + def test_value_counts_with_normalize(self, data): + return super().test_value_counts_with_normalize(data) + @pytest.mark.skip(reason="Incorrect expected") # We have a bool dtype, so the result is an ExtensionArray # but expected is not