Skip to content

Commit 7371c80

Browse files
committed
Handle level
1 parent 601fa21 commit 7371c80

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

pandas/core/generic.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7692,7 +7692,7 @@ def stat_func(self, axis=None, skipna=None, level=None, numeric_only=None,
76927692
axis = self._stat_axis_number
76937693
if level is not None:
76947694
return self._agg_by_level(name, axis=axis, level=level,
7695-
skipna=skipna)
7695+
skipna=skipna, min_count=min_count)
76967696
return self._reduce(f, name, axis=axis, skipna=skipna,
76977697
numeric_only=numeric_only, min_count=min_count)
76987698

pandas/tests/series/test_analytics.py

+22
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,28 @@ def test_empty(self, method, unit, use_bottleneck):
124124
result = getattr(s, method)(min_count=2)
125125
assert isna(result)
126126

127+
@pytest.mark.parametrize('method, unit', [
128+
('sum', 0.0),
129+
('prod', 1.0),
130+
])
131+
def test_empty_multi(self, method, unit):
132+
s = pd.Series([1, np.nan, np.nan, np.nan],
133+
index=pd.MultiIndex.from_product([('a', 'b'), (0, 1)]))
134+
# NaN by default
135+
result = getattr(s, method)(level=0)
136+
expected = pd.Series([1, np.nan], index=['a', 'b'])
137+
tm.assert_series_equal(result, expected)
138+
139+
# min_count=0
140+
result = getattr(s, method)(level=0, min_count=0)
141+
expected = pd.Series([1, unit], index=['a', 'b'])
142+
tm.assert_series_equal(result, expected)
143+
144+
# min_count=1
145+
result = getattr(s, method)(level=0, min_count=1)
146+
expected = pd.Series([1, np.nan], index=['a', 'b'])
147+
tm.assert_series_equal(result, expected)
148+
127149
@pytest.mark.parametrize(
128150
"method", ['sum', 'mean', 'median', 'std', 'var'])
129151
def test_ops_consistency_on_empty(self, method):

0 commit comments

Comments
 (0)