python - 将一列更改为日期时间,但将其作为字符串
问题描述
我成功地将列的 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))]
我只想减去某个时期。
解决方案
我认为您需要将其重新分配以使其正常工作,因为to_datetime
如果解析成功,则返回 DF,请参见此处
所以,像:
data = pd.to_datetime(data['action_time'], format='%Y-%m-%d')
推荐阅读
- java - 根据特定数据集验证 ArrayList 内容
- laravel - 仅使用 Nchan 发布给登录用户
- php - 我们如何通过角度上传二进制文件(.bin)并使用代码点火器在后端处理它
- python - 如何在熊猫数据框中获取具有部分总和的列(按两列分组)
- svelte - 如何从 Prismic API 在 Sapper 应用程序中预加载数据
- python - Pygame 在无头 Raspberry Pi Zero(Raspbian Buster Lite)上显示初始化
- elasticsearch - ElasticSearch 中的相等字段值
- mysql - 没有分组依据的 Linq Sum
- kotlin - 从对象外部调用嵌套在对象内部的扩展函数
- javascript - Firefox 控制台在 javascript 代码中显示语法问题