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