|
5 | 5 | import nose
|
6 | 6 | import unittest
|
7 | 7 |
|
8 |
| -from pandas import Series, DataFrame, date_range, DatetimeIndex |
| 8 | +from pandas import Series, DataFrame, date_range, DatetimeIndex, Timestamp |
9 | 9 | from pandas.core.common import notnull, isnull
|
10 | 10 | import pandas.core.common as com
|
11 | 11 | import pandas.util.testing as tm
|
@@ -117,6 +117,24 @@ def test_datetimeindex_from_empty_datetime64_array():
|
117 | 117 | idx = DatetimeIndex(np.array([], dtype='datetime64[%s]' % unit))
|
118 | 118 | assert(len(idx) == 0)
|
119 | 119 |
|
| 120 | +def test_nan_to_nat_conversions(): |
| 121 | + |
| 122 | + df = DataFrame(dict({ |
| 123 | + 'A' : np.asarray(range(10),dtype='float64'), |
| 124 | + 'B' : Timestamp('20010101') })) |
| 125 | + df.iloc[3:6,:] = np.nan |
| 126 | + result = df.loc[4,'B'].value |
| 127 | + assert(result == iNaT) |
| 128 | + |
| 129 | + values = df['B'].values |
| 130 | + result, changed = com._maybe_upcast_indexer(values,tuple([slice(8,9)]),np.nan) |
| 131 | + assert(isnull(result[8])) |
| 132 | + |
| 133 | + # numpy < 1.7.0 is wrong |
| 134 | + from distutils.version import LooseVersion |
| 135 | + if LooseVersion(np.__version__) >= '1.7.0': |
| 136 | + assert(result[8] == np.datetime64('NaT')) |
| 137 | + |
120 | 138 | def test_any_none():
|
121 | 139 | assert(com._any_none(1, 2, 3, None))
|
122 | 140 | assert(not com._any_none(1, 2, 3, 4))
|
|
0 commit comments