首页 > 解决方案 > 如何对熊猫数据框中的时间值执行逻辑测试

问题描述

我有一个 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'的实例之间不支持'<'

如果我删除引号,或语法错误。

创建该指标的最佳方法是什么?如何使用独立的时间值?还是我最好将它们保留为整数。

标签: pythonpandasdatetime

解决方案


你不能比较 datetime.time 和 str 但你当然可以比较 datetime.time 和 datetime.time:

import datetime
df['DAY COURSE INDICATOR'] = df['START_TIME'] < datetime.time(16, 0)

推荐阅读