@@ -181,23 +181,24 @@ def f():
181
181
182
182
class Ops (tm .TestCase ):
183
183
def setUp (self ):
184
- self .bool_index = tm .makeBoolIndex (10 )
185
- self .int_index = tm .makeIntIndex (10 )
186
- self .float_index = tm .makeFloatIndex (10 )
187
- self .dt_index = tm .makeDateIndex (10 )
188
- self .dt_tz_index = tm .makeDateIndex (10 ).tz_localize (tz = 'US/Eastern' )
189
- self .period_index = tm .makePeriodIndex (10 )
190
- self .string_index = tm .makeStringIndex (10 )
184
+ self .bool_index = tm .makeBoolIndex (10 , name = 'a' )
185
+ self .int_index = tm .makeIntIndex (10 , name = 'a' )
186
+ self .float_index = tm .makeFloatIndex (10 , name = 'a' )
187
+ self .dt_index = tm .makeDateIndex (10 , name = 'a' )
188
+ self .dt_tz_index = tm .makeDateIndex (10 , name = 'a' ).tz_localize (tz = 'US/Eastern' )
189
+ self .period_index = tm .makePeriodIndex (10 , name = 'a' )
190
+ self .string_index = tm .makeStringIndex (10 , name = 'a' )
191
+ self .unicode_index = tm .makeUnicodeIndex (10 , name = 'a' )
191
192
192
193
arr = np .random .randn (10 )
193
- self .int_series = Series (arr , index = self .int_index )
194
- self .float_series = Series (arr , index = self .float_index )
195
- self .dt_series = Series (arr , index = self .dt_index )
194
+ self .int_series = Series (arr , index = self .int_index , name = 'a' )
195
+ self .float_series = Series (arr , index = self .float_index , name = 'a' )
196
+ self .dt_series = Series (arr , index = self .dt_index , name = 'a' )
196
197
self .dt_tz_series = self .dt_tz_index .to_series (keep_tz = True )
197
- self .period_series = Series (arr , index = self .period_index )
198
- self .string_series = Series (arr , index = self .string_index )
198
+ self .period_series = Series (arr , index = self .period_index , name = 'a' )
199
+ self .string_series = Series (arr , index = self .string_index , name = 'a' )
199
200
200
- types = ['bool' ,'int' ,'float' ,'dt' , 'dt_tz' , 'period' ,'string' ]
201
+ types = ['bool' ,'int' ,'float' ,'dt' , 'dt_tz' , 'period' ,'string' , 'unicode' ]
201
202
fmts = [ "{0}_{1}" .format (t ,f ) for t in types for f in ['index' ,'series' ] ]
202
203
self .objs = [ getattr (self ,f ) for f in fmts if getattr (self ,f ,None ) is not None ]
203
204
@@ -213,9 +214,9 @@ def check_ops_properties(self, props, filter=None, ignore_failures=False):
213
214
214
215
try :
215
216
if isinstance (o , Series ):
216
- expected = Series (getattr (o .index ,op ),index = o .index )
217
+ expected = Series (getattr (o .index ,op ), index = o .index , name = 'a' )
217
218
else :
218
- expected = getattr (o ,op )
219
+ expected = getattr (o , op )
219
220
except (AttributeError ):
220
221
if ignore_failures :
221
222
continue
@@ -361,21 +362,28 @@ def test_value_counts_unique_nunique(self):
361
362
# create repeated values, 'n'th element is repeated by n+1 times
362
363
if isinstance (o , PeriodIndex ):
363
364
# freq must be specified because repeat makes freq ambiguous
364
- expected_index = o [::- 1 ]
365
- o = klass (np .repeat (values , range (1 , len (o ) + 1 )), freq = o .freq )
365
+
366
+ # resets name from Index
367
+ expected_index = pd .Index (o [::- 1 ], name = None )
368
+
369
+ # attach name to klass
370
+ o = klass (np .repeat (values , range (1 , len (o ) + 1 )), freq = o .freq , name = 'a' )
366
371
# don't test boolean
367
372
elif isinstance (o ,Index ) and o .is_boolean ():
368
373
continue
369
374
elif isinstance (o , Index ):
370
- expected_index = values [::- 1 ]
371
- o = klass (np .repeat (values , range (1 , len (o ) + 1 )))
375
+ expected_index = pd . Index ( values [::- 1 ], name = None )
376
+ o = klass (np .repeat (values , range (1 , len (o ) + 1 )), name = 'a' )
372
377
else :
373
- expected_index = values [::- 1 ]
378
+ expected_index = pd . Index ( values [::- 1 ], name = None )
374
379
idx = np .repeat (o .index .values , range (1 , len (o ) + 1 ))
375
- o = klass (np .repeat (values , range (1 , len (o ) + 1 )), index = idx )
380
+ o = klass (np .repeat (values , range (1 , len (o ) + 1 )), index = idx , name = 'a' )
376
381
377
- expected_s = Series (range (10 , 0 , - 1 ), index = expected_index , dtype = 'int64' )
378
- tm .assert_series_equal (o .value_counts (), expected_s )
382
+ expected_s = Series (range (10 , 0 , - 1 ), index = expected_index , dtype = 'int64' , name = 'a' )
383
+ result = o .value_counts ()
384
+ tm .assert_series_equal (result , expected_s )
385
+ self .assertTrue (result .index .name is None )
386
+ self .assertEqual (result .name , 'a' )
379
387
380
388
result = o .unique ()
381
389
if isinstance (o , (DatetimeIndex , PeriodIndex )):
@@ -410,21 +418,34 @@ def test_value_counts_unique_nunique(self):
410
418
# create repeated values, 'n'th element is repeated by n+1 times
411
419
if isinstance (o , PeriodIndex ):
412
420
# freq must be specified because repeat makes freq ambiguous
413
- expected_index = o
414
- o = klass (np .repeat (values , range (1 , len (o ) + 1 )), freq = o .freq )
421
+
422
+ # resets name from Index
423
+ expected_index = pd .Index (o , name = None )
424
+ # attach name to klass
425
+ o = klass (np .repeat (values , range (1 , len (o ) + 1 )), freq = o .freq , name = 'a' )
415
426
elif isinstance (o , Index ):
416
- expected_index = values
417
- o = klass (np .repeat (values , range (1 , len (o ) + 1 )))
427
+ expected_index = pd . Index ( values , name = None )
428
+ o = klass (np .repeat (values , range (1 , len (o ) + 1 )), name = 'a' )
418
429
else :
419
- expected_index = values
430
+ expected_index = pd . Index ( values , name = None )
420
431
idx = np .repeat (o .index .values , range (1 , len (o ) + 1 ))
421
- o = klass (np .repeat (values , range (1 , len (o ) + 1 )), index = idx )
422
-
423
- expected_s_na = Series (list (range (10 , 2 , - 1 )) + [3 ], index = expected_index [9 :0 :- 1 ], dtype = 'int64' )
424
- expected_s = Series (list (range (10 , 2 , - 1 )), index = expected_index [9 :1 :- 1 ], dtype = 'int64' )
425
-
426
- tm .assert_series_equal (o .value_counts (dropna = False ), expected_s_na )
432
+ o = klass (np .repeat (values , range (1 , len (o ) + 1 )), index = idx , name = 'a' )
433
+
434
+ expected_s_na = Series (list (range (10 , 2 , - 1 )) + [3 ],
435
+ index = expected_index [9 :0 :- 1 ],
436
+ dtype = 'int64' , name = 'a' )
437
+ expected_s = Series (list (range (10 , 2 , - 1 )),
438
+ index = expected_index [9 :1 :- 1 ],
439
+ dtype = 'int64' , name = 'a' )
440
+
441
+ result_s_na = o .value_counts (dropna = False )
442
+ tm .assert_series_equal (result_s_na , expected_s_na )
443
+ self .assertTrue (result_s_na .index .name is None )
444
+ self .assertEqual (result_s_na .name , 'a' )
445
+ result_s = o .value_counts ()
427
446
tm .assert_series_equal (o .value_counts (), expected_s )
447
+ self .assertTrue (result_s .index .name is None )
448
+ self .assertEqual (result_s .name , 'a' )
428
449
429
450
# numpy_array_equal cannot compare arrays includes nan
430
451
result = o .unique ()
@@ -508,14 +529,15 @@ def test_value_counts_inferred(self):
508
529
df = pd .read_fwf (f , widths = [6 , 8 , 3 ], names = ["person_id" , "dt" , "food" ],
509
530
parse_dates = ["dt" ])
510
531
511
- s = klass (df ['dt' ].copy ())
532
+ s = klass (df ['dt' ].copy (), name = 'dt' )
512
533
513
- idx = pd .to_datetime (['2010-01-01 00:00:00Z' , '2008-09-09 00:00:00Z' , '2009-01-01 00:00:00X' ])
514
- expected_s = Series ([3 , 2 , 1 ], index = idx )
534
+ idx = pd .to_datetime (['2010-01-01 00:00:00Z' , '2008-09-09 00:00:00Z' ,
535
+ '2009-01-01 00:00:00X' ])
536
+ expected_s = Series ([3 , 2 , 1 ], index = idx , name = 'dt' )
515
537
tm .assert_series_equal (s .value_counts (), expected_s )
516
538
517
- expected = np .array (['2010-01-01 00:00:00Z' , '2009-01-01 00:00:00Z' , '2008-09-09 00:00:00Z' ],
518
- dtype = 'datetime64[ns]' )
539
+ expected = np .array (['2010-01-01 00:00:00Z' , '2009-01-01 00:00:00Z' ,
540
+ '2008-09-09 00:00:00Z' ], dtype = 'datetime64[ns]' )
519
541
if isinstance (s , DatetimeIndex ):
520
542
expected = DatetimeIndex (expected )
521
543
self .assertTrue (s .unique ().equals (expected ))
@@ -526,7 +548,7 @@ def test_value_counts_inferred(self):
526
548
527
549
# with NaT
528
550
s = df ['dt' ].copy ()
529
- s = klass ([v for v in s .values ] + [pd .NaT ])
551
+ s = klass ([v for v in s .values ] + [pd .NaT ], name = 'dt' )
530
552
531
553
result = s .value_counts ()
532
554
self .assertEqual (result .index .dtype , 'datetime64[ns]' )
@@ -547,10 +569,10 @@ def test_value_counts_inferred(self):
547
569
548
570
# timedelta64[ns]
549
571
td = df .dt - df .dt + timedelta (1 )
550
- td = klass (td )
572
+ td = klass (td , name = 'dt' )
551
573
552
574
result = td .value_counts ()
553
- expected_s = Series ([6 ], index = [Timedelta ('1day' )])
575
+ expected_s = Series ([6 ], index = [Timedelta ('1day' )], name = 'dt' )
554
576
tm .assert_series_equal (result , expected_s )
555
577
556
578
expected = TimedeltaIndex (['1 days' ])
@@ -560,9 +582,8 @@ def test_value_counts_inferred(self):
560
582
self .assert_numpy_array_equal (td .unique (), expected .values )
561
583
562
584
td2 = timedelta (1 ) + (df .dt - df .dt )
563
- td2 = klass (td2 )
585
+ td2 = klass (td2 , name = 'dt' )
564
586
result2 = td2 .value_counts ()
565
-
566
587
tm .assert_series_equal (result2 , expected_s )
567
588
568
589
def test_factorize (self ):
@@ -629,7 +650,7 @@ def test_duplicated_drop_duplicates(self):
629
650
# special case
630
651
if original .is_boolean ():
631
652
result = original .drop_duplicates ()
632
- expected = Index ([False ,True ])
653
+ expected = Index ([False ,True ], name = 'a' )
633
654
tm .assert_index_equal (result , expected )
634
655
continue
635
656
@@ -668,25 +689,26 @@ def test_duplicated_drop_duplicates(self):
668
689
idx .drop_duplicates (inplace = True )
669
690
670
691
else :
671
- expected = Series ([False ] * len (original ), index = original .index )
692
+ expected = Series ([False ] * len (original ),
693
+ index = original .index , name = 'a' )
672
694
tm .assert_series_equal (original .duplicated (), expected )
673
695
result = original .drop_duplicates ()
674
696
tm .assert_series_equal (result , original )
675
697
self .assertFalse (result is original )
676
698
677
699
idx = original .index [list (range (len (original ))) + [5 , 3 ]]
678
700
values = original .values [list (range (len (original ))) + [5 , 3 ]]
679
- s = Series (values , index = idx )
701
+ s = Series (values , index = idx , name = 'a' )
680
702
681
- expected = Series ([False ] * len (original ) + [True , True ], index = idx )
703
+ expected = Series ([False ] * len (original ) + [True , True ],
704
+ index = idx , name = 'a' )
682
705
tm .assert_series_equal (s .duplicated (), expected )
683
706
tm .assert_series_equal (s .drop_duplicates (), original )
684
707
685
708
last_base = [False ] * len (idx )
686
709
last_base [3 ] = True
687
710
last_base [5 ] = True
688
- expected = Series (last_base , index = idx )
689
- expected
711
+ expected = Series (last_base , index = idx , name = 'a' )
690
712
tm .assert_series_equal (s .duplicated (take_last = True ), expected )
691
713
tm .assert_series_equal (s .drop_duplicates (take_last = True ),
692
714
s [~ np .array (last_base )])
0 commit comments