1
- from collections import OrderedDict
2
1
import pydoc
3
2
import warnings
4
3
25
24
import pandas._testing as tm
26
25
from pandas.core.arrays import PeriodArray
27
26
28
- import pandas.io.formats.printing as printing
29
-
30
27
31
28
class TestSeriesMisc:
32
- def test_scalarop_preserve_name(self, datetime_series):
33
- result = datetime_series * 2
34
- assert result.name == datetime_series.name
35
-
36
- def test_copy_name(self, datetime_series):
37
- result = datetime_series.copy()
38
- assert result.name == datetime_series.name
39
-
40
- def test_copy_index_name_checking(self, datetime_series):
41
- # don't want to be able to modify the index stored elsewhere after
42
- # making a copy
43
-
44
- datetime_series.index.name = None
45
- assert datetime_series.index.name is None
46
- assert datetime_series is datetime_series
47
-
48
- cp = datetime_series.copy()
49
- cp.index.name = "foo"
50
- printing.pprint_thing(datetime_series.index.name)
51
- assert datetime_series.index.name is None
52
-
53
29
def test_append_preserve_name(self, datetime_series):
54
30
result = datetime_series[:5].append(datetime_series[5:])
55
31
assert result.name == datetime_series.name
56
32
57
- def test_binop_maybe_preserve_name(self, datetime_series):
58
- # names match, preserve
59
- result = datetime_series * datetime_series
60
- assert result.name == datetime_series.name
61
- result = datetime_series.mul(datetime_series)
62
- assert result.name == datetime_series.name
63
-
64
- result = datetime_series * datetime_series[:-2]
65
- assert result.name == datetime_series.name
66
-
67
- # names don't match, don't preserve
68
- cp = datetime_series.copy()
69
- cp.name = "something else"
70
- result = datetime_series + cp
71
- assert result.name is None
72
- result = datetime_series.add(cp)
73
- assert result.name is None
74
-
75
- ops = ["add", "sub", "mul", "div", "truediv", "floordiv", "mod", "pow"]
76
- ops = ops + ["r" + op for op in ops]
77
- for op in ops:
78
- # names match, preserve
79
- s = datetime_series.copy()
80
- result = getattr(s, op)(s)
81
- assert result.name == datetime_series.name
82
-
83
- # names don't match, don't preserve
84
- cp = datetime_series.copy()
85
- cp.name = "changed"
86
- result = getattr(s, op)(cp)
87
- assert result.name is None
88
-
89
33
def test_getitem_preserve_name(self, datetime_series):
90
34
result = datetime_series[datetime_series > 0]
91
35
assert result.name == datetime_series.name
@@ -111,73 +55,6 @@ def _pickle_roundtrip(self, obj):
111
55
unpickled = pd.read_pickle(path)
112
56
return unpickled
113
57
114
- def test_constructor_dict(self):
115
- d = {"a": 0.0, "b": 1.0, "c": 2.0}
116
- result = Series(d)
117
- expected = Series(d, index=sorted(d.keys()))
118
- tm.assert_series_equal(result, expected)
119
-
120
- result = Series(d, index=["b", "c", "d", "a"])
121
- expected = Series([1, 2, np.nan, 0], index=["b", "c", "d", "a"])
122
- tm.assert_series_equal(result, expected)
123
-
124
- def test_constructor_subclass_dict(self, dict_subclass):
125
- data = dict_subclass((x, 10.0 * x) for x in range(10))
126
- series = Series(data)
127
- expected = Series(dict(data.items()))
128
- tm.assert_series_equal(series, expected)
129
-
130
- def test_constructor_ordereddict(self):
131
- # GH3283
132
- data = OrderedDict((f"col{i}", np.random.random()) for i in range(12))
133
-
134
- series = Series(data)
135
- expected = Series(list(data.values()), list(data.keys()))
136
- tm.assert_series_equal(series, expected)
137
-
138
- # Test with subclass
139
- class A(OrderedDict):
140
- pass
141
-
142
- series = Series(A(data))
143
- tm.assert_series_equal(series, expected)
144
-
145
- def test_constructor_dict_multiindex(self):
146
- d = {("a", "a"): 0.0, ("b", "a"): 1.0, ("b", "c"): 2.0}
147
- _d = sorted(d.items())
148
- result = Series(d)
149
- expected = Series(
150
- [x[1] for x in _d], index=pd.MultiIndex.from_tuples([x[0] for x in _d])
151
- )
152
- tm.assert_series_equal(result, expected)
153
-
154
- d["z"] = 111.0
155
- _d.insert(0, ("z", d["z"]))
156
- result = Series(d)
157
- expected = Series(
158
- [x[1] for x in _d], index=Index([x[0] for x in _d], tupleize_cols=False)
159
- )
160
- result = result.reindex(index=expected.index)
161
- tm.assert_series_equal(result, expected)
162
-
163
- def test_constructor_dict_timedelta_index(self):
164
- # GH #12169 : Resample category data with timedelta index
165
- # construct Series from dict as data and TimedeltaIndex as index
166
- # will result NaN in result Series data
167
- expected = Series(
168
- data=["A", "B", "C"], index=pd.to_timedelta([0, 10, 20], unit="s")
169
- )
170
-
171
- result = Series(
172
- data={
173
- pd.to_timedelta(0, unit="s"): "A",
174
- pd.to_timedelta(10, unit="s"): "B",
175
- pd.to_timedelta(20, unit="s"): "C",
176
- },
177
- index=pd.to_timedelta([0, 10, 20], unit="s"),
178
- )
179
- tm.assert_series_equal(result, expected)
180
-
181
58
def test_sparse_accessor_updates_on_inplace(self):
182
59
s = Series([1, 1, 2, 3], dtype="Sparse[int]")
183
60
return_value = s.drop([0, 1], inplace=True)
@@ -324,55 +201,6 @@ def test_raise_on_info(self):
324
201
with pytest.raises(AttributeError, match=msg):
325
202
s.info()
326
203
327
- def test_copy(self):
328
-
329
- for deep in [None, False, True]:
330
- s = Series(np.arange(10), dtype="float64")
331
-
332
- # default deep is True
333
- if deep is None:
334
- s2 = s.copy()
335
- else:
336
- s2 = s.copy(deep=deep)
337
-
338
- s2[::2] = np.NaN
339
-
340
- if deep is None or deep is True:
341
- # Did not modify original Series
342
- assert np.isnan(s2[0])
343
- assert not np.isnan(s[0])
344
- else:
345
- # we DID modify the original Series
346
- assert np.isnan(s2[0])
347
- assert np.isnan(s[0])
348
-
349
- def test_copy_tzaware(self):
350
- # GH#11794
351
- # copy of tz-aware
352
- expected = Series([Timestamp("2012/01/01", tz="UTC")])
353
- expected2 = Series([Timestamp("1999/01/01", tz="UTC")])
354
-
355
- for deep in [None, False, True]:
356
-
357
- s = Series([Timestamp("2012/01/01", tz="UTC")])
358
-
359
- if deep is None:
360
- s2 = s.copy()
361
- else:
362
- s2 = s.copy(deep=deep)
363
-
364
- s2[0] = pd.Timestamp("1999/01/01", tz="UTC")
365
-
366
- # default deep is True
367
- if deep is None or deep is True:
368
- # Did not modify original Series
369
- tm.assert_series_equal(s2, expected2)
370
- tm.assert_series_equal(s, expected)
371
- else:
372
- # we DID modify the original Series
373
- tm.assert_series_equal(s2, expected2)
374
- tm.assert_series_equal(s, expected2)
375
-
376
204
def test_axis_alias(self):
377
205
s = Series([1, 2, np.nan])
378
206
tm.assert_series_equal(s.dropna(axis="rows"), s.dropna(axis="index"))
0 commit comments