You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by bh...@apache.org on 2022/05/18 15:23:31 UTC
[beam] branch master updated: [BEAM-14474] Suppress 'Mean of empty slice' Runtime Warning in dataframe unit test (#17682)
This is an automated email from the ASF dual-hosted git repository.
bhulette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new 857f8d300d9 [BEAM-14474] Suppress 'Mean of empty slice' Runtime Warning in dataframe unit test (#17682)
857f8d300d9 is described below
commit 857f8d300d942177ebc4244b9b405222d7deb26d
Author: Yi Hu <ya...@google.com>
AuthorDate: Wed May 18 11:23:21 2022 -0400
[BEAM-14474] Suppress 'Mean of empty slice' Runtime Warning in dataframe unit test (#17682)
* [BEAM-14474] Suppress 'Mean of empty slice' Runtime Warning in dataframe unit test
* use catch_warnings context manager
---
sdks/python/apache_beam/dataframe/frames_test.py | 27 +++++++++++-----------
.../apache_beam/dataframe/transforms_test.py | 5 +++-
2 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/sdks/python/apache_beam/dataframe/frames_test.py b/sdks/python/apache_beam/dataframe/frames_test.py
index ed72a427404..986396da00b 100644
--- a/sdks/python/apache_beam/dataframe/frames_test.py
+++ b/sdks/python/apache_beam/dataframe/frames_test.py
@@ -16,6 +16,7 @@
import re
import unittest
+import warnings
import numpy as np
import pandas as pd
@@ -1601,6 +1602,12 @@ ALL_GROUPING_AGGREGATIONS = sorted(
class GroupByTest(_AbstractFrameTest):
"""Tests for DataFrame/Series GroupBy operations."""
+ @staticmethod
+ def median_sum_fn(x):
+ with warnings.catch_warnings():
+ warnings.filterwarnings("ignore", message="Mean of empty slice")
+ return (x.foo + x.bar).median()
+
@parameterized.expand(ALL_GROUPING_AGGREGATIONS)
def test_groupby_agg(self, agg_type):
if agg_type == 'describe' and PD_VERSION < (1, 2):
@@ -1723,10 +1730,6 @@ class GroupByTest(_AbstractFrameTest):
def test_groupby_apply(self):
df = GROUPBY_DF
-
- def median_sum_fn(x):
- return (x.foo + x.bar).median()
-
# Note this is the same as DataFrameGroupBy.describe. Using it here is
# just a convenient way to test apply() with a user fn that returns a Series
describe = lambda df: df.describe()
@@ -1734,17 +1737,17 @@ class GroupByTest(_AbstractFrameTest):
self._run_test(lambda df: df.groupby('group').foo.apply(describe), df)
self._run_test(
lambda df: df.groupby('group')[['foo', 'bar']].apply(describe), df)
- self._run_test(lambda df: df.groupby('group').apply(median_sum_fn), df)
+ self._run_test(lambda df: df.groupby('group').apply(self.median_sum_fn), df)
self._run_test(
lambda df: df.set_index('group').foo.groupby(level=0).apply(describe),
df)
- self._run_test(lambda df: df.groupby(level=0).apply(median_sum_fn), df)
+ self._run_test(lambda df: df.groupby(level=0).apply(self.median_sum_fn), df)
self._run_test(lambda df: df.groupby(lambda x: x % 3).apply(describe), df)
self._run_test(
lambda df: df.bar.groupby(lambda x: x % 3).apply(describe), df)
self._run_test(
lambda df: df.set_index(['str', 'group', 'bool']).groupby(
- level='group').apply(median_sum_fn),
+ level='group').apply(self.median_sum_fn),
df)
def test_groupby_apply_preserves_column_order(self):
@@ -1830,9 +1833,7 @@ class GroupByTest(_AbstractFrameTest):
self._run_test(
lambda df: df.groupby(level=level).sum(numeric_only=True), df)
self._run_test(
- lambda df: df.groupby(level=level).apply(
- lambda x: (x.foo + x.bar).median()),
- df)
+ lambda df: df.groupby(level=level).apply(self.median_sum_fn), df)
@unittest.skipIf(PD_VERSION < (1, 1), "drop_na added in pandas 1.1.0")
def test_groupby_count_na(self):
@@ -1892,9 +1893,6 @@ class GroupByTest(_AbstractFrameTest):
def test_groupby_series_apply(self):
df = GROUPBY_DF
- def median_sum_fn(x):
- return (x.foo + x.bar).median()
-
# Note this is the same as DataFrameGroupBy.describe. Using it here is
# just a convenient way to test apply() with a user fn that returns a Series
describe = lambda df: df.describe()
@@ -1902,7 +1900,8 @@ class GroupByTest(_AbstractFrameTest):
self._run_test(lambda df: df.groupby(df.group).foo.apply(describe), df)
self._run_test(
lambda df: df.groupby(df.group)[['foo', 'bar']].apply(describe), df)
- self._run_test(lambda df: df.groupby(df.group).apply(median_sum_fn), df)
+ self._run_test(
+ lambda df: df.groupby(df.group).apply(self.median_sum_fn), df)
def test_groupby_multiindex_keep_nans(self):
# Due to https://github.com/pandas-dev/pandas/issues/36470
diff --git a/sdks/python/apache_beam/dataframe/transforms_test.py b/sdks/python/apache_beam/dataframe/transforms_test.py
index 988181e4619..b824bc56c2f 100644
--- a/sdks/python/apache_beam/dataframe/transforms_test.py
+++ b/sdks/python/apache_beam/dataframe/transforms_test.py
@@ -16,6 +16,7 @@
import typing
import unittest
+import warnings
import pandas as pd
@@ -132,7 +133,9 @@ class TransformTest(unittest.TestCase):
})
def median_sum_fn(x):
- return (x.foo + x.bar).median()
+ with warnings.catch_warnings():
+ warnings.filterwarnings("ignore", message="Mean of empty slice")
+ return (x.foo + x.bar).median()
describe = lambda df: df.describe()