diff --git a/pandas/core/frame.py b/pandas/core/frame.py index cba2d3c5aa0e9..2194e8c36a9e3 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -3652,8 +3652,9 @@ def applymap(self, func): # if we have a dtype == 'M8[ns]', provide boxed values def infer(x): - if com.is_datetime64_dtype(x): - x = lib.map_infer(_values_from_object(x), lib.Timestamp) + if com.needs_i8_conversion(x): + f = com.i8_boxer(x) + x = lib.map_infer(_values_from_object(x), f) return lib.map_infer(_values_from_object(x), func) return self.apply(infer) diff --git a/pandas/tests/test_frame.py b/pandas/tests/test_frame.py index 700eb8591fdf9..cefeb89fbc41d 100644 --- a/pandas/tests/test_frame.py +++ b/pandas/tests/test_frame.py @@ -10117,6 +10117,13 @@ def test_applymap(self): result = df.applymap(str) assert_frame_equal(result,expected) + # datetime/timedelta + df['datetime'] = Timestamp('20130101') + df['timedelta'] = Timedelta('1 min') + result = df.applymap(str) + for f in ['datetime','timedelta']: + self.assertEquals(result.loc[0,f],str(df.loc[0,f])) + def test_filter(self): # items filtered = self.frame.filter(['A', 'B', 'E'])