不支持的操作数类型 - :'datetime.time'和'datetime.time'

时间:2018-03-24 15:22:42

标签: python pandas xlsx

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 in to Check In列。通过此代码

  

data['Thời gian làm việc']= data['Check out '] - data['Check in']

但我收到此错误:TypeError:不支持的操作数类型 - :'datetime.time'和'datetime.time'请帮助我。

2 个答案:

答案 0 :(得分:3)

我认为可以通过to_timedelta将值转换为timedeltas,但首先转换为nil s:

string

data['Thời gian làm việc']= (pd.to_timedelta(data['Check out'].astype(str)) - pd.to_timedelta(data['Check in'].astype(str))) to_datetime

datetimes

答案 1 :(得分:2)

我建议您退后一步,考虑一下您的数据模型。 time不是时间点,引自Python的文档:

  

时间对象代表(当地)时间,与任何特定日期无关

..所以减少时间并没有多大意义。假设我在晚上9点办理登机手续,并在两天后的晚上8点退房。你期望什么"晚上8点减去晚上9点"代表?

您的签入/签出列可能会更好地建模为datetime 代表时间点。减去日期时间确实有效,它具有实际意义:将两个时间点分开的时间。

相关问题