|
32 | 32 | import pandas.core.format as fmt
|
33 | 33 | import pandas.core.datetools as datetools
|
34 | 34 | from pandas import (DataFrame, Index, Series, notnull, isnull,
|
35 |
| - MultiIndex, DatetimeIndex, Timestamp, date_range, read_csv) |
| 35 | + MultiIndex, DatetimeIndex, Timestamp, date_range, read_csv, |
| 36 | + _np_version_under1p7) |
36 | 37 | import pandas as pd
|
37 | 38 | from pandas.parser import CParserError
|
38 | 39 | from pandas.util.misc import is_little_endian
|
@@ -2180,11 +2181,11 @@ def test_set_index_cast_datetimeindex(self):
|
2180 | 2181 | # reset_index with single level
|
2181 | 2182 | for tz in ['UTC', 'Asia/Tokyo', 'US/Eastern']:
|
2182 | 2183 | idx = pd.date_range('1/1/2011', periods=5, freq='D', tz=tz, name='idx')
|
2183 |
| - df = pd.DataFrame({'a': range(5), 'b': ['A', 'B', 'C', 'D', 'E']}, index=idx) |
| 2184 | + df = pd.DataFrame({'a': range(5), 'b': ['A', 'B', 'C', 'D', 'E']}, index=idx) |
2184 | 2185 |
|
2185 | 2186 | expected = pd.DataFrame({'idx': [datetime(2011, 1, 1), datetime(2011, 1, 2),
|
2186 | 2187 | datetime(2011, 1, 3), datetime(2011, 1, 4),
|
2187 |
| - datetime(2011, 1, 5)], |
| 2188 | + datetime(2011, 1, 5)], |
2188 | 2189 | 'a': range(5), 'b': ['A', 'B', 'C', 'D', 'E']},
|
2189 | 2190 | columns=['idx', 'a', 'b'])
|
2190 | 2191 | expected['idx'] = expected['idx'].apply(lambda d: pd.Timestamp(d, tz=tz))
|
@@ -3757,6 +3758,28 @@ def test_operators_timedelta64(self):
|
3757 | 3758 | self.assertTrue(df['off1'].dtype == 'timedelta64[ns]')
|
3758 | 3759 | self.assertTrue(df['off2'].dtype == 'timedelta64[ns]')
|
3759 | 3760 |
|
| 3761 | + def test_datetimelike_setitem_with_inference(self): |
| 3762 | + if _np_version_under1p7: |
| 3763 | + raise nose.SkipTest("numpy < 1.7") |
| 3764 | + |
| 3765 | + # GH 7592 |
| 3766 | + # assignment of timedeltas with NaT |
| 3767 | + |
| 3768 | + one_hour = timedelta(hours=1) |
| 3769 | + df = DataFrame(index=date_range('20130101',periods=4)) |
| 3770 | + df['A'] = np.array([1*one_hour]*4, dtype='m8[ns]') |
| 3771 | + df.loc[:,'B'] = np.array([2*one_hour]*4, dtype='m8[ns]') |
| 3772 | + df.loc[:3,'C'] = np.array([3*one_hour]*3, dtype='m8[ns]') |
| 3773 | + df.ix[:,'D'] = np.array([4*one_hour]*4, dtype='m8[ns]') |
| 3774 | + df.ix[:3,'E'] = np.array([5*one_hour]*3, dtype='m8[ns]') |
| 3775 | + df['F'] = np.timedelta64('NaT') |
| 3776 | + df.ix[:-1,'F'] = np.array([6*one_hour]*3, dtype='m8[ns]') |
| 3777 | + df.ix[-3:,'G'] = date_range('20130101',periods=3) |
| 3778 | + df['H'] = np.datetime64('NaT') |
| 3779 | + result = df.dtypes |
| 3780 | + expected = Series([np.dtype('timedelta64[ns]')]*6+[np.dtype('datetime64[ns]')]*2,index=list('ABCDEFGH')) |
| 3781 | + assert_series_equal(result,expected) |
| 3782 | + |
3760 | 3783 | def test_new_empty_index(self):
|
3761 | 3784 | df1 = DataFrame(randn(0, 3))
|
3762 | 3785 | df2 = DataFrame(randn(0, 3))
|
|
0 commit comments