Skip to content

Commit dc9c322

Browse files
committed
Invert axis parameter of DataFrame.diff to match the convention of np.diff
1 parent 5730861 commit dc9c322

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

pandas/core/frame.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3583,21 +3583,22 @@ def unstack(self, level=-1):
35833583
#----------------------------------------------------------------------
35843584
# Time series-related
35853585

3586-
def diff(self, periods=1, axis=1):
3586+
def diff(self, periods=1, axis=0):
35873587
"""
35883588
1st discrete difference of object
35893589
35903590
Parameters
35913591
----------
35923592
periods : int, default 1
35933593
Periods to shift for forming difference
3594-
axis : {0 or 'index', 1 or 'columns'}
3594+
axis : {0 or 'index', 1 or 'columns'}, default 0
35953595
35963596
Returns
35973597
-------
35983598
diffed : DataFrame
35993599
"""
3600-
axis = self._get_axis_number(axis)
3600+
# Invert the axis to match the convention of np.diff
3601+
axis = 1 - self._get_axis_number(axis)
36013602

36023603
new_data = self._data.diff(n=periods, axis=axis)
36033604
return self._constructor(new_data)

pandas/tests/test_frame.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9957,8 +9957,8 @@ def test_diff_float_n(self):
99579957

99589958
def test_diff_axis(self):
99599959
df = DataFrame([[1., 2.], [3., 4.]])
9960-
assert_frame_equal(df.diff(axis=0), DataFrame([[np.nan, 1.], [np.nan, 1.]]))
9961-
assert_frame_equal(df.diff(axis=1), DataFrame([[np.nan, np.nan], [2., 2.]]))
9960+
assert_frame_equal(df.diff(axis=1), DataFrame([[np.nan, 1.], [np.nan, 1.]]))
9961+
assert_frame_equal(df.diff(axis=0), DataFrame([[np.nan, np.nan], [2., 2.]]))
99629962

99639963
def test_pct_change(self):
99649964
rs = self.tsframe.pct_change(fill_method=None)

0 commit comments

Comments
 (0)