6
6
from datetime import datetime
7
7
8
8
import numpy as np
9
- import pandas as pd
10
9
11
- from pandas import Index , Series
12
- from pandas .core .index import MultiIndex , RangeIndex
10
+ from pandas import Series , DataFrame , Index , MultiIndex , RangeIndex
13
11
14
12
from pandas .compat import lrange , range , zip
15
- from pandas .util .testing import assert_series_equal , assert_frame_equal
16
13
import pandas .util .testing as tm
17
14
18
- from .common import TestData
19
15
16
+ class TestSeriesAlterAxes ():
20
17
21
- class TestSeriesAlterAxes (TestData ):
22
-
23
- def test_setindex (self ):
18
+ def test_setindex (self , series ):
24
19
# wrong type
25
- series = self .series .copy ()
26
20
pytest .raises (TypeError , setattr , series , 'index' , None )
27
21
28
22
# wrong length
29
- series = self .series .copy ()
30
23
pytest .raises (Exception , setattr , series , 'index' ,
31
24
np .arange (len (series ) - 1 ))
32
25
33
26
# works
34
- series = self .series .copy ()
35
27
series .index = np .arange (len (series ))
36
28
assert isinstance (series .index , Index )
37
29
38
- def test_rename (self ):
30
+ # Renaming
31
+
32
+ def test_rename (self , ts ):
39
33
renamer = lambda x : x .strftime ('%Y%m%d' )
40
- renamed = self . ts .rename (renamer )
41
- assert renamed .index [0 ] == renamer (self . ts .index [0 ])
34
+ renamed = ts .rename (renamer )
35
+ assert renamed .index [0 ] == renamer (ts .index [0 ])
42
36
43
37
# dict
44
- rename_dict = dict (zip (self . ts .index , renamed .index ))
45
- renamed2 = self . ts .rename (rename_dict )
46
- assert_series_equal (renamed , renamed2 )
38
+ rename_dict = dict (zip (ts .index , renamed .index ))
39
+ renamed2 = ts .rename (rename_dict )
40
+ tm . assert_series_equal (renamed , renamed2 )
47
41
48
42
# partial dict
49
43
s = Series (np .arange (4 ), index = ['a' , 'b' , 'c' , 'd' ], dtype = 'int64' )
@@ -105,12 +99,12 @@ def test_set_name(self):
105
99
assert s .name is None
106
100
assert s is not s2
107
101
108
- def test_rename_inplace (self ):
102
+ def test_rename_inplace (self , ts ):
109
103
renamer = lambda x : x .strftime ('%Y%m%d' )
110
- expected = renamer (self . ts .index [0 ])
104
+ expected = renamer (ts .index [0 ])
111
105
112
- self . ts .rename (renamer , inplace = True )
113
- assert self . ts .index [0 ] == expected
106
+ ts .rename (renamer , inplace = True )
107
+ assert ts .index [0 ] == expected
114
108
115
109
def test_set_index_makes_timeseries (self ):
116
110
idx = tm .makeDateIndex (10 )
@@ -135,7 +129,7 @@ def test_reset_index(self):
135
129
s = ser .reset_index (drop = True )
136
130
s2 = ser
137
131
s2 .reset_index (drop = True , inplace = True )
138
- assert_series_equal (s , s2 )
132
+ tm . assert_series_equal (s , s2 )
139
133
140
134
# level
141
135
index = MultiIndex (levels = [['bar' ], ['one' , 'two' , 'three' ], [0 , 1 ]],
@@ -150,8 +144,8 @@ def test_reset_index(self):
150
144
assert isinstance (rs , Series )
151
145
152
146
def test_reset_index_level (self ):
153
- df = pd . DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]],
154
- columns = ['A' , 'B' , 'C' ])
147
+ df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]],
148
+ columns = ['A' , 'B' , 'C' ])
155
149
156
150
for levels in ['A' , 'B' ], [0 , 1 ]:
157
151
# With MultiIndex
@@ -189,19 +183,19 @@ def test_reset_index_level(self):
189
183
s .reset_index (level = [0 , 1 , 2 ])
190
184
191
185
# Check that .reset_index([],drop=True) doesn't fail
192
- result = pd . Series (range (4 )).reset_index ([], drop = True )
193
- expected = pd . Series (range (4 ))
194
- assert_series_equal (result , expected )
186
+ result = Series (range (4 )).reset_index ([], drop = True )
187
+ expected = Series (range (4 ))
188
+ tm . assert_series_equal (result , expected )
195
189
196
190
def test_reset_index_range (self ):
197
191
# GH 12071
198
- s = pd . Series (range (2 ), name = 'A' , dtype = 'int64' )
192
+ s = Series (range (2 ), name = 'A' , dtype = 'int64' )
199
193
series_result = s .reset_index ()
200
194
assert isinstance (series_result .index , RangeIndex )
201
- series_expected = pd . DataFrame ([[0 , 0 ], [1 , 1 ]],
202
- columns = ['index' , 'A' ],
203
- index = RangeIndex (stop = 2 ))
204
- assert_frame_equal (series_result , series_expected )
195
+ series_expected = DataFrame ([[0 , 0 ], [1 , 1 ]],
196
+ columns = ['index' , 'A' ],
197
+ index = RangeIndex (stop = 2 ))
198
+ tm . assert_frame_equal (series_result , series_expected )
205
199
206
200
def test_reorder_levels (self ):
207
201
index = MultiIndex (levels = [['bar' ], ['one' , 'two' , 'three' ], [0 , 1 ]],
@@ -212,11 +206,11 @@ def test_reorder_levels(self):
212
206
213
207
# no change, position
214
208
result = s .reorder_levels ([0 , 1 , 2 ])
215
- assert_series_equal (s , result )
209
+ tm . assert_series_equal (s , result )
216
210
217
211
# no change, labels
218
212
result = s .reorder_levels (['L0' , 'L1' , 'L2' ])
219
- assert_series_equal (s , result )
213
+ tm . assert_series_equal (s , result )
220
214
221
215
# rotate, position
222
216
result = s .reorder_levels ([1 , 2 , 0 ])
@@ -225,17 +219,17 @@ def test_reorder_levels(self):
225
219
[0 , 0 , 0 , 0 , 0 , 0 ]],
226
220
names = ['L1' , 'L2' , 'L0' ])
227
221
expected = Series (np .arange (6 ), index = e_idx )
228
- assert_series_equal (result , expected )
222
+ tm . assert_series_equal (result , expected )
229
223
230
- def test_rename_axis_inplace (self ):
224
+ def test_rename_axis_inplace (self , ts ):
231
225
# GH 15704
232
- series = self . ts .copy ()
226
+ series = ts .copy ()
233
227
expected = series .rename_axis ('foo' )
234
228
result = series .copy ()
235
229
no_return = result .rename_axis ('foo' , inplace = True )
236
230
237
231
assert no_return is None
238
- assert_series_equal (result , expected )
232
+ tm . assert_series_equal (result , expected )
239
233
240
234
def test_set_axis_inplace_axes (self , axis_series ):
241
235
# GH14636
@@ -291,25 +285,25 @@ def test_reset_index_drop_errors(self):
291
285
# GH 20925
292
286
293
287
# KeyError raised for series index when passed level name is missing
294
- s = pd . Series (range (4 ))
288
+ s = Series (range (4 ))
295
289
with tm .assert_raises_regex (KeyError , 'must be same as name' ):
296
290
s .reset_index ('wrong' , drop = True )
297
291
with tm .assert_raises_regex (KeyError , 'must be same as name' ):
298
292
s .reset_index ('wrong' )
299
293
300
294
# KeyError raised for series when level to be dropped is missing
301
- s = pd . Series (range (4 ), index = pd . MultiIndex .from_product ([[1 , 2 ]] * 2 ))
295
+ s = Series (range (4 ), index = MultiIndex .from_product ([[1 , 2 ]] * 2 ))
302
296
with tm .assert_raises_regex (KeyError , 'not found' ):
303
297
s .reset_index ('wrong' , drop = True )
304
298
305
299
def test_droplevel (self ):
306
300
# GH20342
307
- ser = pd . Series ([1 , 2 , 3 , 4 ])
308
- ser .index = pd . MultiIndex .from_arrays ([(1 , 2 , 3 , 4 ), (5 , 6 , 7 , 8 )],
309
- names = ['a' , 'b' ])
301
+ ser = Series ([1 , 2 , 3 , 4 ])
302
+ ser .index = MultiIndex .from_arrays ([(1 , 2 , 3 , 4 ), (5 , 6 , 7 , 8 )],
303
+ names = ['a' , 'b' ])
310
304
expected = ser .reset_index ('b' , drop = True )
311
305
result = ser .droplevel ('b' , axis = 'index' )
312
- assert_series_equal (result , expected )
306
+ tm . assert_series_equal (result , expected )
313
307
# test that droplevel raises ValueError on axis != 0
314
308
with pytest .raises (ValueError ):
315
309
ser .droplevel (1 , axis = 'columns' )
0 commit comments