File tree 3 files changed +14
-2
lines changed
3 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -741,6 +741,7 @@ Other
741
741
- Bug in :meth: `Series.to_frame ` and :meth: `Index.to_frame ` ignoring the ``name `` argument when ``name=None `` is explicitly passed (:issue: `44212 `)
742
742
- Bug in :meth: `Series.replace ` and :meth: `DataFrame.replace ` with ``value=None `` and ExtensionDtypes (:issue: `44270 `)
743
743
- Bug in :meth: `FloatingArray.equals ` failing to consider two arrays equal if they contain ``np.nan `` values (:issue: `44382 `)
744
+ - Bug in :meth: `DataFrame.diff ` when passing a NumPy integer object instead of an ``int `` object (:issue: `44572 `)
744
745
-
745
746
746
747
.. ***DO NOT USE THIS SECTION***
Original file line number Diff line number Diff line change @@ -8612,8 +8612,12 @@ def melt(
8612
8612
),
8613
8613
)
8614
8614
def diff (self , periods : int = 1 , axis : Axis = 0 ) -> DataFrame :
8615
- if not isinstance (periods , int ):
8616
- if not (is_float (periods ) and periods .is_integer ()):
8615
+ if not lib .is_integer (periods ):
8616
+ if not (
8617
+ is_float (periods )
8618
+ # error: "int" has no attribute "is_integer"
8619
+ and periods .is_integer () # type: ignore[attr-defined]
8620
+ ):
8617
8621
raise ValueError ("periods must be an integer" )
8618
8622
periods = int (periods )
8619
8623
Original file line number Diff line number Diff line change @@ -17,6 +17,13 @@ def test_diff_requires_integer(self):
17
17
with pytest .raises (ValueError , match = "periods must be an integer" ):
18
18
df .diff (1.5 )
19
19
20
+ def test_diff_allows_np_integer (self ):
21
+ # np.int64 is OK GH#44572
22
+ df = DataFrame (np .random .randn (2 , 2 ))
23
+ res = df .diff (np .int64 (1 ))
24
+ expected = df .diff (1 )
25
+ tm .assert_frame_equal (res , expected )
26
+
20
27
def test_diff (self , datetime_frame ):
21
28
the_diff = datetime_frame .diff (1 )
22
29
You can’t perform that action at this time.
0 commit comments