Skip to content

Apply datetime methods to timestamps results in numpy errors #2689

Closed
@NigelCleland

Description

@NigelCleland

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions