Skip to content

vectorised setting of timestamp columns fails with python datetime and numpy datetime64 #10408

Closed
@seanv507

Description

@seanv507
import pandas as pd
import numpy as np
import datetime as dt
z=dt.date(2010,11,1)
zs=[z+dt.timedelta(days=r) for r in range(5)]
df=pd.DataFrame({'obj':zs, 'b':pd.Timestamp('2010-10-01'),'c':pd.Timestamp('2010-10-01')})
df.dtypes

#df.loc[0:2,'c']=dt.date(2010,10,12) # causes error: long() argument must be a string or a number, not 'datetime.date
df.loc[0:2,'c']=np.datetime64('2010-10-12') # sets to 1970...
df.at[4,'c']=np.datetime64('2010-10-12') # works
df.loc[0:2,'obj']=np.datetime64('2010-10-12') #works

df.loc[0:2,'obj']=dt.date(2010,10,12)

df
ind b c obj
0 2010-10-01 1970-01-01 2010-10-12
1 2010-10-01 1970-01-01 2010-10-12
2 2010-10-01 1970-01-01 2010-10-12
3 2010-10-01 2010-10-01 2010-11-04
4 2010-10-01 2010-10-12 2010-11-05

I am using Pandas 0.16.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugDatetimeDatetime data dtypeDtype ConversionsUnexpected or buggy dtype conversions

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions