Skip to content

Commit bdc1883

Browse files
author
Marco Gorelli
committed
🎨 implement diff within extensionarray
1 parent 302803f commit bdc1883

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

pandas/core/arrays/base.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from pandas.core.dtypes.missing import isna
2525

2626
from pandas.core import ops
27-
from pandas.core.algorithms import _factorize_array, unique
27+
from pandas.core.algorithms import _factorize_array, diff, unique
2828
from pandas.core.missing import backfill_1d, pad_1d
2929
from pandas.core.sorting import nargsort
3030

@@ -516,6 +516,9 @@ def argsort(
516516
result = nargsort(self, kind=kind, ascending=ascending, na_position="last")
517517
return result
518518

519+
def diff(self, n_periods):
520+
return type(self)._from_sequence(diff(self, n_periods), dtype=self.dtype)
521+
519522
def fillna(self, value=None, method=None, limit=None):
520523
"""
521524
Fill NA/NaN values using the specified method.

pandas/core/series.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -2316,13 +2316,11 @@ def diff(self, periods=1) -> "Series":
23162316
5 NaN
23172317
dtype: float64
23182318
"""
2319-
result = algorithms.diff(com.values_from_object(self), periods)
23202319
if is_extension_array_dtype(self.dtype) and not is_datetime64tz_dtype(
23212320
self.dtype
23222321
):
2323-
return self._constructor(
2324-
result, index=self.index, dtype=self.dtype
2325-
).__finalize__(self)
2322+
return self.values.diff(n_periods=periods)
2323+
result = algorithms.diff(com.values_from_object(self), periods)
23262324
return self._constructor(result, index=self.index).__finalize__(self)
23272325

23282326
def autocorr(self, lag=1) -> float:

0 commit comments

Comments
 (0)