@@ -614,56 +614,61 @@ def test_partition_sep_kwarg(any_string_dtype):
614
614
615
615
616
616
def test_get ():
617
- values = Series (["a_b_c" , "c_d_e" , np .nan , "f_g_h" ])
618
-
619
- result = values .str .split ("_" ).str .get (1 )
617
+ ser = Series (["a_b_c" , "c_d_e" , np .nan , "f_g_h" ])
618
+ result = ser .str .split ("_" ).str .get (1 )
620
619
expected = Series (["b" , "d" , np .nan , "g" ])
621
620
tm .assert_series_equal (result , expected )
622
621
623
- # mixed
624
- mixed = Series (["a_b_c" , np .nan , "c_d_e" , True , datetime .today (), None , 1 , 2.0 ])
625
622
626
- rs = Series (mixed ).str .split ("_" ).str .get (1 )
627
- xp = Series (["b" , np .nan , "d" , np .nan , np .nan , np .nan , np .nan , np .nan ])
623
+ def test_get_mixed_object ():
624
+ ser = Series (["a_b_c" , np .nan , "c_d_e" , True , datetime .today (), None , 1 , 2.0 ])
625
+ result = ser .str .split ("_" ).str .get (1 )
626
+ expected = Series (["b" , np .nan , "d" , np .nan , np .nan , np .nan , np .nan , np .nan ])
627
+ tm .assert_series_equal (result , expected )
628
628
629
- assert isinstance (rs , Series )
630
- tm .assert_almost_equal (rs , xp )
631
629
632
- # bounds testing
633
- values = Series (["1_2_3_4_5" , "6_7_8_9_10" , "11_12" ])
630
+ def test_get_bounds ():
631
+ ser = Series (["1_2_3_4_5" , "6_7_8_9_10" , "11_12" ])
634
632
635
633
# positive index
636
- result = values .str .split ("_" ).str .get (2 )
634
+ result = ser .str .split ("_" ).str .get (2 )
637
635
expected = Series (["3" , "8" , np .nan ])
638
636
tm .assert_series_equal (result , expected )
639
637
640
638
# negative index
641
- result = values .str .split ("_" ).str .get (- 3 )
639
+ result = ser .str .split ("_" ).str .get (- 3 )
642
640
expected = Series (["3" , "8" , np .nan ])
643
641
tm .assert_series_equal (result , expected )
644
642
645
643
646
644
def test_get_complex ():
647
645
# GH 20671, getting value not in dict raising `KeyError`
648
- values = Series ([(1 , 2 , 3 ), [1 , 2 , 3 ], {1 , 2 , 3 }, {1 : "a" , 2 : "b" , 3 : "c" }])
646
+ ser = Series ([(1 , 2 , 3 ), [1 , 2 , 3 ], {1 , 2 , 3 }, {1 : "a" , 2 : "b" , 3 : "c" }])
649
647
650
- result = values .str .get (1 )
648
+ result = ser .str .get (1 )
651
649
expected = Series ([2 , 2 , np .nan , "a" ])
652
650
tm .assert_series_equal (result , expected )
653
651
654
- result = values .str .get (- 1 )
652
+ result = ser .str .get (- 1 )
655
653
expected = Series ([3 , 3 , np .nan , np .nan ])
656
654
tm .assert_series_equal (result , expected )
657
655
658
656
659
657
@pytest .mark .parametrize ("to_type" , [tuple , list , np .array ])
660
658
def test_get_complex_nested (to_type ):
661
- values = Series ([to_type ([to_type ([1 , 2 ])])])
659
+ ser = Series ([to_type ([to_type ([1 , 2 ])])])
662
660
663
- result = values .str .get (0 )
661
+ result = ser .str .get (0 )
664
662
expected = Series ([to_type ([1 , 2 ])])
665
663
tm .assert_series_equal (result , expected )
666
664
667
- result = values .str .get (1 )
665
+ result = ser .str .get (1 )
668
666
expected = Series ([np .nan ])
669
667
tm .assert_series_equal (result , expected )
668
+
669
+
670
+ def test_get_strings (any_string_dtype ):
671
+ ser = Series (["a" , "ab" , np .nan , "abc" ], dtype = any_string_dtype )
672
+ result = ser .str .get (2 )
673
+ expected = Series ([np .nan , np .nan , np .nan , "c" ], dtype = any_string_dtype )
674
+ tm .assert_series_equal (result , expected )
0 commit comments