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 (object ):
20
17
21
- class TestSeriesAlterAxes (TestData ):
22
-
23
- def test_setindex (self ):
18
+ def test_setindex (self , string_series ):
24
19
# wrong type
25
- series = self .series .copy ()
26
- pytest .raises (TypeError , setattr , series , 'index' , None )
20
+ pytest .raises (TypeError , setattr , string_series , 'index' , None )
27
21
28
22
# wrong length
29
- series = self .series .copy ()
30
- pytest .raises (Exception , setattr , series , 'index' ,
31
- np .arange (len (series ) - 1 ))
23
+ pytest .raises (Exception , setattr , string_series , 'index' ,
24
+ np .arange (len (string_series ) - 1 ))
32
25
33
26
# works
34
- series = self .series .copy ()
35
- series .index = np .arange (len (series ))
36
- assert isinstance (series .index , Index )
27
+ string_series .index = np .arange (len (string_series ))
28
+ assert isinstance (string_series .index , Index )
29
+
30
+ # Renaming
37
31
38
- def test_rename (self ):
32
+ def test_rename (self , datetime_series ):
33
+ ts = datetime_series
39
34
renamer = lambda x : x .strftime ('%Y%m%d' )
40
- renamed = self . ts .rename (renamer )
41
- assert renamed .index [0 ] == renamer (self . ts .index [0 ])
35
+ renamed = ts .rename (renamer )
36
+ assert renamed .index [0 ] == renamer (ts .index [0 ])
42
37
43
38
# dict
44
- rename_dict = dict (zip (self . ts .index , renamed .index ))
45
- renamed2 = self . ts .rename (rename_dict )
46
- assert_series_equal (renamed , renamed2 )
39
+ rename_dict = dict (zip (ts .index , renamed .index ))
40
+ renamed2 = ts .rename (rename_dict )
41
+ tm . assert_series_equal (renamed , renamed2 )
47
42
48
43
# partial dict
49
44
s = Series (np .arange (4 ), index = ['a' , 'b' , 'c' , 'd' ], dtype = 'int64' )
@@ -105,12 +100,12 @@ def test_set_name(self):
105
100
assert s .name is None
106
101
assert s is not s2
107
102
108
- def test_rename_inplace (self ):
103
+ def test_rename_inplace (self , datetime_series ):
109
104
renamer = lambda x : x .strftime ('%Y%m%d' )
110
- expected = renamer (self . ts .index [0 ])
105
+ expected = renamer (datetime_series .index [0 ])
111
106
112
- self . ts .rename (renamer , inplace = True )
113
- assert self . ts .index [0 ] == expected
107
+ datetime_series .rename (renamer , inplace = True )
108
+ assert datetime_series .index [0 ] == expected
114
109
115
110
def test_set_index_makes_timeseries (self ):
116
111
idx = tm .makeDateIndex (10 )
@@ -135,7 +130,7 @@ def test_reset_index(self):
135
130
s = ser .reset_index (drop = True )
136
131
s2 = ser
137
132
s2 .reset_index (drop = True , inplace = True )
138
- assert_series_equal (s , s2 )
133
+ tm . assert_series_equal (s , s2 )
139
134
140
135
# level
141
136
index = MultiIndex (levels = [['bar' ], ['one' , 'two' , 'three' ], [0 , 1 ]],
@@ -150,8 +145,8 @@ def test_reset_index(self):
150
145
assert isinstance (rs , Series )
151
146
152
147
def test_reset_index_level (self ):
153
- df = pd . DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]],
154
- columns = ['A' , 'B' , 'C' ])
148
+ df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]],
149
+ columns = ['A' , 'B' , 'C' ])
155
150
156
151
for levels in ['A' , 'B' ], [0 , 1 ]:
157
152
# With MultiIndex
@@ -189,19 +184,19 @@ def test_reset_index_level(self):
189
184
s .reset_index (level = [0 , 1 , 2 ])
190
185
191
186
# 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 )
187
+ result = Series (range (4 )).reset_index ([], drop = True )
188
+ expected = Series (range (4 ))
189
+ tm . assert_series_equal (result , expected )
195
190
196
191
def test_reset_index_range (self ):
197
192
# GH 12071
198
- s = pd . Series (range (2 ), name = 'A' , dtype = 'int64' )
193
+ s = Series (range (2 ), name = 'A' , dtype = 'int64' )
199
194
series_result = s .reset_index ()
200
195
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 )
196
+ series_expected = DataFrame ([[0 , 0 ], [1 , 1 ]],
197
+ columns = ['index' , 'A' ],
198
+ index = RangeIndex (stop = 2 ))
199
+ tm . assert_frame_equal (series_result , series_expected )
205
200
206
201
def test_reorder_levels (self ):
207
202
index = MultiIndex (levels = [['bar' ], ['one' , 'two' , 'three' ], [0 , 1 ]],
@@ -212,11 +207,11 @@ def test_reorder_levels(self):
212
207
213
208
# no change, position
214
209
result = s .reorder_levels ([0 , 1 , 2 ])
215
- assert_series_equal (s , result )
210
+ tm . assert_series_equal (s , result )
216
211
217
212
# no change, labels
218
213
result = s .reorder_levels (['L0' , 'L1' , 'L2' ])
219
- assert_series_equal (s , result )
214
+ tm . assert_series_equal (s , result )
220
215
221
216
# rotate, position
222
217
result = s .reorder_levels ([1 , 2 , 0 ])
@@ -225,17 +220,16 @@ def test_reorder_levels(self):
225
220
[0 , 0 , 0 , 0 , 0 , 0 ]],
226
221
names = ['L1' , 'L2' , 'L0' ])
227
222
expected = Series (np .arange (6 ), index = e_idx )
228
- assert_series_equal (result , expected )
223
+ tm . assert_series_equal (result , expected )
229
224
230
- def test_rename_axis_inplace (self ):
225
+ def test_rename_axis_inplace (self , datetime_series ):
231
226
# GH 15704
232
- series = self .ts .copy ()
233
- expected = series .rename_axis ('foo' )
234
- result = series .copy ()
227
+ expected = datetime_series .rename_axis ('foo' )
228
+ result = datetime_series
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