python - 如何对熊猫数据框中的时间值执行逻辑测试
问题描述
我有一个 Excel 表,其中一列包含一个时间字段,其中的值是输入为四位数字的时间:即 0845、1630、1000。
我已将其读入熊猫数据框进行分析,其中一个将每次标记为白天或晚上。为此,我首先更改了数据类型和格式:
# Get start time as time
df['START_TIME'] = pd.to_datetime(df['START_TIME'],format='%H%M').dt.time
这使值看起来像:
08:45:00
16:30:00
10:00:00
新的 dtype 是对象。
当我尝试对该字段进行逻辑测试时,即
# Create indicator of whether course begins before or after 4:00 PM
df['DAY COURSE INDICATOR'] = df['START_TIME'] < '16:00:00'
我收到一个类型错误:
TypeError:>'datetime.time'和'str'的实例之间不支持'<'
如果我删除引号,或语法错误。
创建该指标的最佳方法是什么?如何使用独立的时间值?还是我最好将它们保留为整数。
解决方案
你不能比较 datetime.time 和 str 但你当然可以比较 datetime.time 和 datetime.time:
import datetime
df['DAY COURSE INDICATOR'] = df['START_TIME'] < datetime.time(16, 0)
推荐阅读
- objective-c - NSURLConnection 总是 TRUE
- python - 自动化无根安卓智能手机
- javascript - 使用从 ajax 请求返回的数据更新输入“值”属性...传入 [object, Object]。- Django/Python
- c - atomic operator++ 和 atomic_fetch_add_explicit 的区别
- python - 如何在布尔变量上使用 .trace?
- swift - 如何更快地显示来自 Firebase 的数据?
- r - 如何让R函数返回多个参数值
- python-3.x - 从 PyQt4 迁移到 PyQt5
- css - 在 RMarkdown 文档中为 fontcolor 创建与输出无关的标记
- java - 我有一个使用 H.264 (MPEG-4) 压缩记录视频的代码,但我想使用 MJPEG