Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions pandas/core/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -4363,8 +4363,9 @@ def quantile(self, q=0.5, axis=0, numeric_only=True):
----------
q : float or array-like, default 0.5 (50% quantile)
0 <= q <= 1, the quantile(s) to compute
axis : {0, 1}
0 for row-wise, 1 for column-wise
axis : {0, 1, 'index', 'columns'} (default 0)
0 or 'index' for row-wise, 1 or 'columns' for column-wise


Returns
-------
Expand Down Expand Up @@ -4410,6 +4411,9 @@ def f(arr, per):
return _quantile(values, per)

data = self._get_numeric_data() if numeric_only else self

axis = self._get_axis_number(axis)

if axis == 1:
data = data.T

Expand Down
24 changes: 24 additions & 0 deletions pandas/tests/test_frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -11786,6 +11786,30 @@ def test_quantile(self):
expected = Series([3., 4.], index=[0, 1])
assert_series_equal(result, expected)

def test_quantile_axis_parameter(self):
from numpy import percentile
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add the issue number here


df = DataFrame({"A": [1, 2, 3], "B": [2, 3, 4]}, index=[1, 2, 3])

result = df.quantile(.5, axis=0)

expected = Series([2., 3.], index=["A", "B"])
assert_series_equal(result, expected)

expected = df.quantile(.5, axis="index")
assert_series_equal(result, expected)

result = df.quantile(.5, axis=1)

expected = Series([1.5, 2.5, 3.5], index=[1, 2, 3])
assert_series_equal(result, expected)

result = df.quantile(.5, axis="columns")
assert_series_equal(result, expected)

assertRaises(ValueError, df.quantile, 0.1, axis=-1)
assertRaises(ValueError, df.quantile, 0.1, axis="column")

def test_quantile_multi(self):
df = DataFrame([[1, 1, 1], [2, 2, 2], [3, 3, 3]],
columns=['a', 'b', 'c'])
Expand Down