Pandas Dataframe没有时间将字符串转换为数据

时间:2014-07-07 15:53:27

标签: python datetime pandas

我有一个Pandas Dataframe df:

a     date
1     2014-06-29 00:00:00

df.types返回:

 a    object
 date object

我希望将列数据转换为数据而不是时间,但是:

df['date']=df['date'].astype('datetime64[s]')

返回:

a   date
1   2014-06-28 22:00:00

df.types返回:

 a    object
 date datetime64[ns]

但价值是错误的。

我有:

a     date
1     2014-06-29

或:

a     date
1     2014-06-29 00:00:00

2 个答案:

答案 0 :(得分:1)

我首先将你的日期放在pd.datetime:

df['date'] = pd.to_datetime(df.date)

现在,您可以看到时间组件仍然存在:

df.date.values

array(['2014-06-28T19:00:00.000000000-0500'], dtype='datetime64[ns]')

如果您可以再次使用日期对象,则需要:

df['date'] = [x.strftime("%y-%m-%d") for x in df.date]

这将以日期时间结束:

df['date'] = [x.date() for x in df.date]
df.date

datetime.date(2014, 6, 29)

答案 1 :(得分:0)

您在这里。只需使用这种模式:

df.to_datetime()。date()