|
16 | 16 |
|
17 | 17 | class TestSeriesInternals(tm.TestCase):
|
18 | 18 |
|
19 |
| - def test_convert_objects(self): |
20 |
| - |
21 |
| - s = Series([1., 2, 3], index=['a', 'b', 'c']) |
22 |
| - with tm.assert_produces_warning(FutureWarning): |
23 |
| - result = s.convert_objects(convert_dates=False, |
24 |
| - convert_numeric=True) |
25 |
| - assert_series_equal(result, s) |
26 |
| - |
27 |
| - # force numeric conversion |
28 |
| - r = s.copy().astype('O') |
29 |
| - r['a'] = '1' |
30 |
| - with tm.assert_produces_warning(FutureWarning): |
31 |
| - result = r.convert_objects(convert_dates=False, |
32 |
| - convert_numeric=True) |
33 |
| - assert_series_equal(result, s) |
34 |
| - |
35 |
| - r = s.copy().astype('O') |
36 |
| - r['a'] = '1.' |
37 |
| - with tm.assert_produces_warning(FutureWarning): |
38 |
| - result = r.convert_objects(convert_dates=False, |
39 |
| - convert_numeric=True) |
40 |
| - assert_series_equal(result, s) |
41 |
| - |
42 |
| - r = s.copy().astype('O') |
43 |
| - r['a'] = 'garbled' |
44 |
| - expected = s.copy() |
45 |
| - expected['a'] = np.nan |
46 |
| - with tm.assert_produces_warning(FutureWarning): |
47 |
| - result = r.convert_objects(convert_dates=False, |
48 |
| - convert_numeric=True) |
49 |
| - assert_series_equal(result, expected) |
50 |
| - |
51 |
| - # GH 4119, not converting a mixed type (e.g.floats and object) |
52 |
| - s = Series([1, 'na', 3, 4]) |
53 |
| - with tm.assert_produces_warning(FutureWarning): |
54 |
| - result = s.convert_objects(convert_numeric=True) |
55 |
| - expected = Series([1, np.nan, 3, 4]) |
56 |
| - assert_series_equal(result, expected) |
57 |
| - |
58 |
| - s = Series([1, '', 3, 4]) |
59 |
| - with tm.assert_produces_warning(FutureWarning): |
60 |
| - result = s.convert_objects(convert_numeric=True) |
61 |
| - expected = Series([1, np.nan, 3, 4]) |
62 |
| - assert_series_equal(result, expected) |
63 |
| - |
64 |
| - # dates |
65 |
| - s = Series([datetime(2001, 1, 1, 0, 0), datetime(2001, 1, 2, 0, 0), |
66 |
| - datetime(2001, 1, 3, 0, 0)]) |
67 |
| - s2 = Series([datetime(2001, 1, 1, 0, 0), datetime(2001, 1, 2, 0, 0), |
68 |
| - datetime(2001, 1, 3, 0, 0), 'foo', 1.0, 1, |
69 |
| - Timestamp('20010104'), '20010105'], |
70 |
| - dtype='O') |
71 |
| - with tm.assert_produces_warning(FutureWarning): |
72 |
| - result = s.convert_objects(convert_dates=True, |
73 |
| - convert_numeric=False) |
74 |
| - expected = Series([Timestamp('20010101'), Timestamp('20010102'), |
75 |
| - Timestamp('20010103')], dtype='M8[ns]') |
76 |
| - assert_series_equal(result, expected) |
77 |
| - |
78 |
| - with tm.assert_produces_warning(FutureWarning): |
79 |
| - result = s.convert_objects(convert_dates='coerce', |
80 |
| - convert_numeric=False) |
81 |
| - with tm.assert_produces_warning(FutureWarning): |
82 |
| - result = s.convert_objects(convert_dates='coerce', |
83 |
| - convert_numeric=True) |
84 |
| - assert_series_equal(result, expected) |
85 |
| - |
86 |
| - expected = Series([Timestamp('20010101'), Timestamp('20010102'), |
87 |
| - Timestamp('20010103'), |
88 |
| - lib.NaT, lib.NaT, lib.NaT, Timestamp('20010104'), |
89 |
| - Timestamp('20010105')], dtype='M8[ns]') |
90 |
| - with tm.assert_produces_warning(FutureWarning): |
91 |
| - result = s2.convert_objects(convert_dates='coerce', |
92 |
| - convert_numeric=False) |
93 |
| - assert_series_equal(result, expected) |
94 |
| - with tm.assert_produces_warning(FutureWarning): |
95 |
| - result = s2.convert_objects(convert_dates='coerce', |
96 |
| - convert_numeric=True) |
97 |
| - assert_series_equal(result, expected) |
98 |
| - |
99 |
| - # preserver all-nans (if convert_dates='coerce') |
100 |
| - s = Series(['foo', 'bar', 1, 1.0], dtype='O') |
101 |
| - with tm.assert_produces_warning(FutureWarning): |
102 |
| - result = s.convert_objects(convert_dates='coerce', |
103 |
| - convert_numeric=False) |
104 |
| - expected = Series([lib.NaT] * 2 + [Timestamp(1)] * 2) |
105 |
| - assert_series_equal(result, expected) |
106 |
| - |
107 |
| - # preserver if non-object |
108 |
| - s = Series([1], dtype='float32') |
109 |
| - with tm.assert_produces_warning(FutureWarning): |
110 |
| - result = s.convert_objects(convert_dates='coerce', |
111 |
| - convert_numeric=False) |
112 |
| - assert_series_equal(result, s) |
113 |
| - |
114 |
| - # r = s.copy() |
115 |
| - # r[0] = np.nan |
116 |
| - # result = r.convert_objects(convert_dates=True,convert_numeric=False) |
117 |
| - # self.assertEqual(result.dtype, 'M8[ns]') |
118 |
| - |
119 |
| - # dateutil parses some single letters into today's value as a date |
120 |
| - for x in 'abcdefghijklmnopqrstuvwxyz': |
121 |
| - s = Series([x]) |
122 |
| - with tm.assert_produces_warning(FutureWarning): |
123 |
| - result = s.convert_objects(convert_dates='coerce') |
124 |
| - assert_series_equal(result, s) |
125 |
| - s = Series([x.upper()]) |
126 |
| - with tm.assert_produces_warning(FutureWarning): |
127 |
| - result = s.convert_objects(convert_dates='coerce') |
128 |
| - assert_series_equal(result, s) |
129 |
| - |
130 |
| - def test_convert_objects_preserve_bool(self): |
131 |
| - s = Series([1, True, 3, 5], dtype=object) |
132 |
| - with tm.assert_produces_warning(FutureWarning): |
133 |
| - r = s.convert_objects(convert_numeric=True) |
134 |
| - e = Series([1, 1, 3, 5], dtype='i8') |
135 |
| - tm.assert_series_equal(r, e) |
136 |
| - |
137 |
| - def test_convert_objects_preserve_all_bool(self): |
138 |
| - s = Series([False, True, False, False], dtype=object) |
139 |
| - with tm.assert_produces_warning(FutureWarning): |
140 |
| - r = s.convert_objects(convert_numeric=True) |
141 |
| - e = Series([False, True, False, False], dtype=bool) |
142 |
| - tm.assert_series_equal(r, e) |
143 |
| - |
144 | 19 | # GH 10265
|
145 | 20 | def test_convert(self):
|
146 | 21 | # Tests: All to nans, coerce, true
|
|
0 commit comments