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