@@ -772,25 +772,43 @@ def test_map_identity_mapping(self):
772
772
for name , cur_index in self .indices .items ():
773
773
self .assert_index_equal (cur_index , cur_index .map (lambda x : x ))
774
774
775
- def test_map_that_returns_tuples_creates_multi_index (self ):
775
+ def test_map_with_tuples (self ):
776
776
# GH 12766
777
- boolean_index = tm .makeIntIndex (3 ).map (lambda x : (x , x == 1 ))
778
- expected = MultiIndex .from_tuples ([(0 , False ), (1 , True ), (2 , False )])
777
+
778
+ # Test that returning a single tuple from an Index
779
+ # returns an Index.
780
+ boolean_index = tm .makeIntIndex (3 ).map (lambda x : (x ,))
781
+ expected = Index ([(0 ,), (1 ,), (2 ,)])
779
782
self .assert_index_equal (boolean_index , expected )
780
783
781
- def test_map_that_returns_a_length_one_tuple_creates_an_index ( self ):
782
- # GH 12766
783
- boolean_index = tm .makeIntIndex (3 ).map (lambda x : (x , ))
784
- expected = Index ([(0 , ), (1 , ), (2 , )])
784
+ # Test that returning a tuple from a map of a single index
785
+ # returns a MultiIndex object.
786
+ boolean_index = tm .makeIntIndex (3 ).map (lambda x : (x , x == 1 ))
787
+ expected = MultiIndex . from_tuples ([(0 , False ), (1 , True ), (2 , False )])
785
788
self .assert_index_equal (boolean_index , expected )
786
789
787
- def test_map_that_reduces_multi_index_to_single_index_returns_index ( self ):
788
- # GH 12766
790
+ # Test that returning a single object from a MultiIndex
791
+ # returns an Index.
789
792
first_level = ['foo' , 'bar' , 'baz' ]
790
793
multi_index = MultiIndex .from_tuples (lzip (first_level , [1 , 2 , 3 ]))
791
794
reduced_index = multi_index .map (lambda x : x [0 ])
792
795
self .assert_index_equal (reduced_index , Index (first_level ))
793
796
797
+ def test_map_tseries_indices_return_index (self ):
798
+ date_index = tm .makeDateIndex (10 )
799
+ exp = Index ([1 ] * 10 )
800
+ self .assert_index_equal (exp , date_index .map (lambda x : 1 ))
801
+
802
+ period_index = tm .makePeriodIndex (10 )
803
+ self .assert_index_equal (exp , period_index .map (lambda x : 1 ))
804
+
805
+ tdelta_index = tm .makeTimedeltaIndex (10 )
806
+ self .assert_index_equal (exp , tdelta_index .map (lambda x : 1 ))
807
+
808
+ date_index = tm .makeDateIndex (24 , freq = 'h' , name = 'hourly' )
809
+ exp = Index (range (24 ), name = 'hourly' )
810
+ self .assert_index_equal (exp , date_index .map (lambda x : x .hour ))
811
+
794
812
def test_append_multiple (self ):
795
813
index = Index (['a' , 'b' , 'c' , 'd' , 'e' , 'f' ])
796
814
0 commit comments