python将字符串转换成时间格式,如何在Pandas Python中将字符串转换为日期时间格式?...

I have a column I_DATE of type string(object) in a dataframe called train as show below.

I_DATE

28-03-2012 2:15:00 PM

28-03-2012 2:17:28 PM

28-03-2012 2:50:50 PM

How to convert I_DATE from string to datatime format & specify the format of input string. I saw some answers to this but its not for AM/PM format.

Also, how to filter rows based on a range of dates in pandas?

解决方案

Use to_datetime, there is no need for a format string the parser is man/woman enough to handle it:

In [51]:

pd.to_datetime(df['I_DATE'])

Out[51]:

0 2012-03-28 14:15:00

1 2012-03-28 14:17:28

2 2012-03-28 14:50:50

Name: I_DATE, dtype: datetime64[ns]

To access the date/day/time component use the dt accessor:

In [54]:

df['I_DATE'].dt.date

Out[54]:

0 2012-03-28

1 2012-03-28

2 2012-03-28

dtype: object

In [56]:

df['I_DATE'].dt.time

Out[56]:

0 14:15:00

1 14:17:28

2 14:50:50

dtype: object

You can use strings to filter as an example:

In [59]:

df = pd.DataFrame({'date':pd.date_range(start = dt.datetime(2015,1,1), end = dt.datetime.now())})

df[(df['date'] > '2015-02-04') & (df['date'] < '2015-02-10')]

Out[59]:

date

35 2015-02-05

36 2015-02-06

37 2015-02-07

38 2015-02-08

39 2015-02-09

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值