@@ -498,122 +498,71 @@ def test_floating_index_doc_example(self):
498
498
assert s .loc [3 ] == 2
499
499
assert s .iloc [3 ] == 3
500
500
501
- def test_floating_misc (self ):
501
+ def test_floating_misc (self , indexer_sl ):
502
502
503
503
# related 236
504
504
# scalar/slicing of a float index
505
505
s = Series (np .arange (5 ), index = np .arange (5 ) * 2.5 , dtype = np .int64 )
506
506
507
507
# label based slicing
508
- result1 = s [1.0 :3.0 ]
509
- result2 = s .loc [1.0 :3.0 ]
510
- result3 = s .loc [1.0 :3.0 ]
511
- tm .assert_series_equal (result1 , result2 )
512
- tm .assert_series_equal (result1 , result3 )
508
+ result = indexer_sl (s )[1.0 :3.0 ]
509
+ expected = Series (1 , index = [2.5 ])
510
+ tm .assert_series_equal (result , expected )
513
511
514
512
# exact indexing when found
515
- result1 = s [5.0 ]
516
- result2 = s .loc [5.0 ]
517
- result3 = s .loc [5.0 ]
518
- assert result1 == result2
519
- assert result1 == result3
520
513
521
- result1 = s [5 ]
522
- result2 = s .loc [5 ]
523
- result3 = s .loc [5 ]
524
- assert result1 == result2
525
- assert result1 == result3
514
+ result = indexer_sl (s )[5.0 ]
515
+ assert result == 2
526
516
527
- assert s [5.0 ] == s [5 ]
517
+ result = indexer_sl (s )[5 ]
518
+ assert result == 2
528
519
529
520
# value not found (and no fallbacking at all)
530
521
531
522
# scalar integers
532
523
with pytest .raises (KeyError , match = r"^4$" ):
533
- s .loc [4 ]
534
- with pytest .raises (KeyError , match = r"^4$" ):
535
- s .loc [4 ]
536
- with pytest .raises (KeyError , match = r"^4$" ):
537
- s [4 ]
524
+ indexer_sl (s )[4 ]
538
525
539
526
# fancy floats/integers create the correct entry (as nan)
540
527
# fancy tests
541
528
expected = Series ([2 , 0 ], index = Float64Index ([5.0 , 0.0 ]))
542
529
for fancy_idx in [[5.0 , 0.0 ], np .array ([5.0 , 0.0 ])]: # float
543
- tm .assert_series_equal (s [fancy_idx ], expected )
544
- tm .assert_series_equal (s .loc [fancy_idx ], expected )
545
- tm .assert_series_equal (s .loc [fancy_idx ], expected )
530
+ tm .assert_series_equal (indexer_sl (s )[fancy_idx ], expected )
546
531
547
532
expected = Series ([2 , 0 ], index = Index ([5 , 0 ], dtype = "int64" ))
548
533
for fancy_idx in [[5 , 0 ], np .array ([5 , 0 ])]: # int
549
- tm .assert_series_equal (s [fancy_idx ], expected )
550
- tm .assert_series_equal (s .loc [fancy_idx ], expected )
551
- tm .assert_series_equal (s .loc [fancy_idx ], expected )
534
+ tm .assert_series_equal (indexer_sl (s )[fancy_idx ], expected )
552
535
553
536
# all should return the same as we are slicing 'the same'
554
- result1 = s .loc [2 :5 ]
555
- result2 = s .loc [2.0 :5.0 ]
556
- result3 = s .loc [2.0 :5 ]
557
- result4 = s .loc [2.1 :5 ]
558
- tm .assert_series_equal (result1 , result2 )
559
- tm .assert_series_equal (result1 , result3 )
560
- tm .assert_series_equal (result1 , result4 )
561
-
562
- # previously this did fallback indexing
563
- result1 = s [2 :5 ]
564
- result2 = s [2.0 :5.0 ]
565
- result3 = s [2.0 :5 ]
566
- result4 = s [2.1 :5 ]
537
+ result1 = indexer_sl (s )[2 :5 ]
538
+ result2 = indexer_sl (s )[2.0 :5.0 ]
539
+ result3 = indexer_sl (s )[2.0 :5 ]
540
+ result4 = indexer_sl (s )[2.1 :5 ]
567
541
tm .assert_series_equal (result1 , result2 )
568
542
tm .assert_series_equal (result1 , result3 )
569
543
tm .assert_series_equal (result1 , result4 )
570
544
571
- result1 = s .loc [2 :5 ]
572
- result2 = s .loc [2.0 :5.0 ]
573
- result3 = s .loc [2.0 :5 ]
574
- result4 = s .loc [2.1 :5 ]
575
- tm .assert_series_equal (result1 , result2 )
576
- tm .assert_series_equal (result1 , result3 )
577
- tm .assert_series_equal (result1 , result4 )
545
+ expected = Series ([1 , 2 ], index = [2.5 , 5.0 ])
546
+ result = indexer_sl (s )[2 :5 ]
578
547
579
- # combined test
580
- result1 = s .loc [2 :5 ]
581
- result2 = s .loc [2 :5 ]
582
- result3 = s [2 :5 ]
583
-
584
- tm .assert_series_equal (result1 , result2 )
585
- tm .assert_series_equal (result1 , result3 )
548
+ tm .assert_series_equal (result , expected )
586
549
587
550
# list selection
588
- result1 = s [[0.0 , 5 , 10 ]]
589
- result2 = s .loc [[0.0 , 5 , 10 ]]
590
- result3 = s .loc [[0.0 , 5 , 10 ]]
591
- result4 = s .iloc [[0 , 2 , 4 ]]
551
+ result1 = indexer_sl (s )[[0.0 , 5 , 10 ]]
552
+ result2 = s .iloc [[0 , 2 , 4 ]]
592
553
tm .assert_series_equal (result1 , result2 )
593
- tm .assert_series_equal (result1 , result3 )
594
- tm .assert_series_equal (result1 , result4 )
595
554
596
555
with pytest .raises (KeyError , match = "with any missing labels" ):
597
- s [[1.6 , 5 , 10 ]]
598
- with pytest .raises (KeyError , match = "with any missing labels" ):
599
- s .loc [[1.6 , 5 , 10 ]]
556
+ indexer_sl (s )[[1.6 , 5 , 10 ]]
600
557
601
558
with pytest .raises (KeyError , match = "with any missing labels" ):
602
- s [[0 , 1 , 2 ]]
603
- with pytest .raises (KeyError , match = "with any missing labels" ):
604
- s .loc [[0 , 1 , 2 ]]
559
+ indexer_sl (s )[[0 , 1 , 2 ]]
605
560
606
- result1 = s .loc [[2.5 , 5 ]]
607
- result2 = s .loc [[2.5 , 5 ]]
608
- tm .assert_series_equal (result1 , result2 )
609
- tm .assert_series_equal (result1 , Series ([1 , 2 ], index = [2.5 , 5.0 ]))
561
+ result = indexer_sl (s )[[2.5 , 5 ]]
562
+ tm .assert_series_equal (result , Series ([1 , 2 ], index = [2.5 , 5.0 ]))
610
563
611
- result1 = s [[2.5 ]]
612
- result2 = s .loc [[2.5 ]]
613
- result3 = s .loc [[2.5 ]]
614
- tm .assert_series_equal (result1 , result2 )
615
- tm .assert_series_equal (result1 , result3 )
616
- tm .assert_series_equal (result1 , Series ([1 ], index = [2.5 ]))
564
+ result = indexer_sl (s )[[2.5 ]]
565
+ tm .assert_series_equal (result , Series ([1 ], index = [2.5 ]))
617
566
618
567
def test_floating_tuples (self ):
619
568
# see gh-13509
0 commit comments