@@ -547,6 +547,22 @@ def test_extract(self):
547547 result = Series (['A1' , 'B2' , 'C' ]).str .extract ('(?P<letter>[ABC])(?P<number>[123])?' )
548548 exp = DataFrame ([['A' , '1' ], ['B' , '2' ], ['C' , NA ]], columns = ['letter' , 'number' ])
549549 tm .assert_frame_equal (result , exp )
550+
551+ def check_index (index ):
552+ data = ['A1' , 'B2' , 'C' ]
553+ index = index [:len (data )]
554+ result = Series (data , index = index ).str .extract ('(\d)' )
555+ exp = Series (['1' , '2' , NA ], index = index )
556+ tm .assert_series_equal (result , exp )
557+
558+ result = Series (data , index = index ).str .extract ('(?P<letter>\D)(?P<number>\d)?' )
559+ exp = DataFrame ([['A' , '1' ], ['B' , '2' ], ['C' , NA ]], columns = ['letter' , 'number' ], index = index )
560+ tm .assert_frame_equal (result , exp )
561+
562+ for index in [ tm .makeStringIndex , tm .makeUnicodeIndex , tm .makeIntIndex ,
563+ tm .makeDateIndex , tm .makePeriodIndex ]:
564+ check_index (index ())
565+
550566
551567 def test_get_dummies (self ):
552568 s = Series (['a|b' , 'a|c' , np .nan ])
0 commit comments