Skip to content

Commit dbceb26

Browse files
committed
BUG: Add test for to_numpy() handling of NaT and NaN values
1 parent df59a2c commit dbceb26

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

pandas/tests/frame/methods/test_to_numpy.py

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import numpy as np
22
import pytest
33

4-
from pandas import (
5-
DataFrame,
6-
Timestamp,
7-
)
4+
from pandas import DataFrame, Timestamp, date_range, NaT
85
import pandas._testing as tm
96

107

@@ -41,3 +38,37 @@ def test_to_numpy_mixed_dtype_to_str(self):
4138
result = df.to_numpy(dtype=str)
4239
expected = np.array([["2020-01-01 00:00:00", "100.0"]], dtype=str)
4340
tm.assert_numpy_array_equal(result, expected)
41+
42+
def test_to_numpy_datetime_with_na(self):
43+
# GH #53115
44+
dti = date_range("2016-01-01", periods=3)
45+
df = DataFrame(dti)
46+
df.iloc[0, 0] = NaT
47+
expected = np.array([[np.nan], [1.45169280e18], [1.45177920e18]])
48+
assert np.allclose(
49+
df.to_numpy(float, na_value=np.nan), expected, equal_nan=True
50+
)
51+
52+
df = DataFrame(
53+
{
54+
"a": [Timestamp("1970-01-01"), Timestamp("1970-01-02"), NaT],
55+
"b": [
56+
Timestamp("1970-01-01"),
57+
np.nan,
58+
Timestamp("1970-01-02"),
59+
],
60+
"c": [
61+
1,
62+
np.nan,
63+
2,
64+
],
65+
}
66+
)
67+
arr = np.array(
68+
[
69+
[0.00e00, 0.00e00, 1.00e00],
70+
[8.64e04, np.nan, np.nan],
71+
[np.nan, 8.64e04, 2.00e00],
72+
]
73+
)
74+
assert np.allclose(df.to_numpy(float, na_value=np.nan), arr, equal_nan=True)

0 commit comments

Comments
 (0)