- 不支持的操作数类型:'datetime.time' 和 'datetime.time'
unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'
Ca Tên NVNL Check in Check out Thời gian làm việc trong ca Hỗ trợ ăn trưa
0 Ca Sáng Ngô Hải Anh 08:15:00 12:13:00 NaN NaN
1 Ca Chiều Ngô Hải Anh 14:00:00 17:35:00 NaN NaN
2 Ca Chiều Ngô Văn Ninh 13:30:00 17:57:00 NaN NaN
3 Ca Chiều Nguyễn Hoàng Anh 14:00:00 17:43:00 NaN NaN
我想将 Check out 减去 Check In 列。通过此代码
data['Thời gian làm việc']= data['Check out '] - data['Check in']
但我收到此错误:TypeError: 不支持的操作数类型 -: 'datetime.time' 和 'datetime.time' 请帮助我。
我认为这里可以通过 to_timedelta
将值转换为时间增量,但首先转换为 string
s:
data['Thời gian làm việc']= (pd.to_timedelta(data['Check out'].astype(str)) -
pd.to_timedelta(data['Check in'].astype(str)))
或 datetimes
通过 to_datetime
:
data['Thời gian làm việc']= (pd.to_datetime(data['Check out'].astype(str)) -
pd.to_datetime(data['Check in'].astype(str)))
我建议您退后一步,考虑一下您的数据模型。 time
不是时间点,引用自 Python 的文档:
A time object represents a (local) time of day, independent of any particular day
.. 所以减去时间没有多大意义。假设我晚上 9 点入住,两天后晚上 8 点退房。您认为“晚上 8 点减去晚上 9 点”代表什么?
您的签入/签出列最好建模为 datetime
,其中 do 表示时间点。 datetimes 相减确实有效,而且它有实际意义:分隔两个时间点的时间。
Ca Tên NVNL Check in Check out Thời gian làm việc trong ca Hỗ trợ ăn trưa
0 Ca Sáng Ngô Hải Anh 08:15:00 12:13:00 NaN NaN
1 Ca Chiều Ngô Hải Anh 14:00:00 17:35:00 NaN NaN
2 Ca Chiều Ngô Văn Ninh 13:30:00 17:57:00 NaN NaN
3 Ca Chiều Nguyễn Hoàng Anh 14:00:00 17:43:00 NaN NaN
我想将 Check out 减去 Check In 列。通过此代码
data['Thời gian làm việc']= data['Check out '] - data['Check in']
但我收到此错误:TypeError: 不支持的操作数类型 -: 'datetime.time' 和 'datetime.time' 请帮助我。
我认为这里可以通过 to_timedelta
将值转换为时间增量,但首先转换为 string
s:
data['Thời gian làm việc']= (pd.to_timedelta(data['Check out'].astype(str)) -
pd.to_timedelta(data['Check in'].astype(str)))
或 datetimes
通过 to_datetime
:
data['Thời gian làm việc']= (pd.to_datetime(data['Check out'].astype(str)) -
pd.to_datetime(data['Check in'].astype(str)))
我建议您退后一步,考虑一下您的数据模型。 time
不是时间点,引用自 Python 的文档:
A time object represents a (local) time of day, independent of any particular day
.. 所以减去时间没有多大意义。假设我晚上 9 点入住,两天后晚上 8 点退房。您认为“晚上 8 点减去晚上 9 点”代表什么?
您的签入/签出列最好建模为 datetime
,其中 do 表示时间点。 datetimes 相减确实有效,而且它有实际意义:分隔两个时间点的时间。