Apply datetime methods to timestamps results in numpy errors · Issue #2689 · pandas-dev/pandas (original) (raw)
Hi,
This may or may not be a bug. I'm unsure of which functionality you were intending.
I have a timestamp created by
rng = pd.date_range(start_date, periods = 100, freq='2H')
A = DataFrame(rng) # We'll leave it as a generic index for now, not important.
I then have a function which is applied to that dataframe via A.apply(f)
def f(x):
return (x.hour, x.day, x.month)
if I apply this functionality to the raw dataframe via .apply, this will result in a numpy.datetime64 error.
However, if I apply it to individual points.
E.g. f(A.ix[10]), then the correct functionality results.
I have determined that this is due to a difference between the types of the two
e.g. A.dtype = dtype('datetime64[n]s')
type(A.ix[10]) = pandas.tslib.Timestamp
Thus to get around the issue above you may simply add the following functionality to the function
def f(x):
x = pd.Timestamp(x)
return (x.hour, x.month, x.year)
I am filing this as I'm unsure of what you're intended functionality is with this matter