首页 > 解决方案 > 将一列更改为日期时间,但将其作为字符串

问题描述

我成功地将列的 dtype 更改为 datetime。但是,我得到了 TypeError: '>=' not supported between 'str' 和 'datetime.datetime' 的实例。

我认为这是因为 dtype 是 datetime64[ns, pytz.FixedOffset(540) (不仅仅是 datetime64)。但我不知道该怎么办。

在另一个笔记本中,我成功完成了它。(我用的笔记本是别人的,但是原来的数据是一样的)

pd.to_datetime(data['action_time'], format='%Y-%m-%d')
0         2019-08-08 11:00:44+09:00
1         2019-08-08 11:00:47+09:00
2         2019-08-08 11:01:04+09:00
3         2019-08-08 11:01:07+09:00
4         2019-08-08 11:01:09+09:00
                     ...           
1123878   2019-08-14 23:59:56+09:00
1123879   2019-08-15 00:00:00+09:00
1123880   2019-08-15 00:00:01+09:00
1123881   2019-08-15 00:00:04+09:00
1123882   2019-08-15 00:00:04+09:00
Name: action_time, Length: 1123883, dtype: datetime64[ns, pytz.FixedOffset(540)]
data[(data['action_time'] >= dt.datetime(2019, 8, 8)) & (data['action_time'] <= dt.datetime(2019, 8, 14))]

我只想减去某个时期。

标签: pythonpandasdataframedatetime

解决方案


我认为您需要将其重新分配以使其正常工作,因为to_datetime如果解析成功,则返回 DF,请参见此处

所以,像:

data = pd.to_datetime(data['action_time'], format='%Y-%m-%d')

推荐阅读