@@ -76,3 +76,29 @@ def test_union(self):
7676 for case in cases :
7777 result = first .union (case )
7878 assert tm .equalContents (result , everything )
79+
80+ def test_map (self ):
81+ expected = self .index + 1
82+ tm .assert_index_equal (self .index .map (lambda x : x + 1 ), expected )
83+
84+ series_map = pd .Series (expected , self .index )
85+ tm .assert_index_equal (self .index .map (series_map ), expected )
86+
87+ dict_map = {i : e for e , i in zip (expected , self .index )}
88+ tm .assert_index_equal (self .index .map (dict_map ), expected )
89+
90+ # empty mappable
91+ nan_index = Index ([pd .np .nan ] * len (self .index ))
92+ series_map = pd .Series ()
93+ tm .assert_index_equal (self .index .map (series_map ), nan_index )
94+ dict_map = {}
95+ tm .assert_index_equal (self .index .map (dict_map ), nan_index )
96+
97+ # map to NaT
98+ result = self .index .map (lambda x : pd .NaT if x == self .index [0 ] else x )
99+ expected = Index ([pd .NaT ] + self .index [1 :].tolist ())
100+ tm .assert_index_equal (result , expected )
101+ series_map = pd .Series (expected , self .index )
102+ tm .assert_index_equal (self .index .map (series_map ), expected )
103+ dict_map = {i : e for e , i in zip (expected , self .index )}
104+ tm .assert_index_equal (self .index .map (dict_map ), expected )
0 commit comments