Skip to content

Commit 42d4e80

Browse files
committed
MAINT: Address reviewer comments
1 parent 0de350d commit 42d4e80

File tree

2 files changed

+28
-50
lines changed

2 files changed

+28
-50
lines changed

doc/source/whatsnew/v0.23.0.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,7 @@ Offsets
905905

906906
Numeric
907907
^^^^^^^
908-
- Bug in ``DataFrame.rank()`` and ``Series.rank()`` when ``method='dense'`` and ``pct=True`` (:issue:`15630`)
908+
- Bug in :meth:`DataFrame.rank` and :meth:`Series.rank` when ``method='dense'`` and ``pct=True`` in which percentile ranks were not being used with the number of distinct observations (:issue:`15630`)
909909
- Bug in :class:`Series` constructor with an int or float list where specifying ``dtype=str``, ``dtype='str'`` or ``dtype='U'`` failed to convert the data elements to strings (:issue:`16605`)
910910
- Bug in :class:`Index` multiplication and division methods where operating with a ``Series`` would return an ``Index`` object instead of a ``Series`` object (:issue:`19042`)
911911
- Bug in the :class:`DataFrame` constructor in which data containing very large positive or very large negative numbers was causing ``OverflowError`` (:issue:`18584`)

pandas/tests/frame/test_rank.py

+27-49
Original file line numberDiff line numberDiff line change
@@ -268,54 +268,32 @@ def _check2d(df, expected, method='average', axis=0):
268268
_check2d(frame, results[method], method=method, axis=axis)
269269

270270

271-
# GH15630, pct should be on 100% basis when method='dense'
272-
@pytest.mark.parametrize('frame, exp', [
273-
([['2012', 'B', 3], ['2012', 'A', 2], ['2012', 'A', 1]],
274-
[[1., 1., 1.], [1., 0.5, 2. / 3], [1., 0.5, 1. / 3]])])
275-
def test_rank_dense_pct(frame, exp):
276-
df = DataFrame(frame)
277-
result = df.rank(method='dense', pct=True)
278-
expected = DataFrame(exp)
279-
assert_frame_equal(result, expected)
280-
281-
282-
@pytest.mark.parametrize('frame, exp', [
283-
([['2012', 'B', 3], ['2012', 'A', 2], ['2012', 'A', 1]],
284-
[[1. / 3, 1., 1.], [1. / 3, 1. / 3, 2. / 3],
285-
[1. / 3, 1. / 3, 1. / 3]])])
286-
def test_rank_min_pct(frame, exp):
287-
df = DataFrame(frame)
288-
result = df.rank(method='min', pct=True)
289-
expected = DataFrame(exp)
290-
assert_frame_equal(result, expected)
291-
292-
293-
@pytest.mark.parametrize('frame, exp', [
294-
([['2012', 'B', 3], ['2012', 'A', 2], ['2012', 'A', 1]],
295-
[[1., 1., 1.], [1., 2. / 3, 2. / 3], [1., 2. / 3, 1. / 3]])])
296-
def test_rank_max_pct(frame, exp):
297-
df = DataFrame(frame)
298-
result = df.rank(method='max', pct=True)
299-
expected = DataFrame(exp)
300-
assert_frame_equal(result, expected)
301-
302-
303-
@pytest.mark.parametrize('frame, exp', [
304-
([['2012', 'B', 3], ['2012', 'A', 2], ['2012', 'A', 1]],
305-
[[2. / 3, 1., 1.], [2. / 3, 0.5, 2. / 3], [2. / 3, 0.5, 1. / 3]])])
306-
def test_rank_average_pct(frame, exp):
307-
df = DataFrame(frame)
308-
result = df.rank(method='average', pct=True)
309-
expected = DataFrame(exp)
310-
assert_frame_equal(result, expected)
311-
271+
@pytest.mark.parametrize(
272+
"method,exp", [("dense",
273+
[[1., 1., 1.],
274+
[1., 0.5, 2. / 3],
275+
[1., 0.5, 1. / 3]]),
276+
("min",
277+
[[1. / 3, 1., 1.],
278+
[1. / 3, 1. / 3, 2. / 3],
279+
[1. / 3, 1. / 3, 1. / 3]]),
280+
("max",
281+
[[1., 1., 1.],
282+
[1., 2. / 3, 2. / 3],
283+
[1., 2. / 3, 1. / 3]]),
284+
("average",
285+
[[2. / 3, 1., 1.],
286+
[2. / 3, 0.5, 2. / 3],
287+
[2. / 3, 0.5, 1. / 3]]),
288+
("first",
289+
[[1. / 3, 1., 1.],
290+
[2. / 3, 1. / 3, 2. / 3],
291+
[3. / 3, 2. / 3, 1. / 3]])])
292+
def test_rank_pct_true(method, exp):
293+
# see gh-15630.
294+
295+
df = DataFrame([[2012, 66, 3], [2012, 65, 2], [2012, 65, 1]])
296+
result = df.rank(method=method, pct=True)
312297

313-
@pytest.mark.parametrize('frame, exp', [
314-
([[2012, 66, 3], [2012, 65, 2], [2012, 65, 1]],
315-
[[1. / 3, 1., 1.], [2. / 3, 1. / 3, 2. / 3],
316-
[3. / 3, 2. / 3, 1. / 3]])])
317-
def test_rank_first_pct(frame, exp):
318-
df = DataFrame(frame)
319-
result = df.rank(method='first', pct=True)
320298
expected = DataFrame(exp)
321-
assert_frame_equal(result, expected)
299+
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)