import pandas as pd from datetime import datetime, timedelta filePath="D:\\Mercy\\项目1\\工单环节明细列表2023-05-22.xlsx" link="中台支撑处理" linkName="业务支撑中心" timeLimit="00:10:00" # 将时间差转换为 timedelta 类型 time_limit = datetime.strptime(timeLimit, "%H:%M:%S").time() time_limit_delta = timedelta(hours=time_limit.hour, minutes=time_limit.minute, seconds=time_limit.second) data_frame=pd.read_excel(filePath,sheet_name="工单环节明细列表2023-05-22") data1=data_frame[(data_frame["环节名称"]==link) & (data_frame["环节处理人部门"]==linkName)] data2=data_frame[(data_frame["环节名称"] == link) & (data_frame["环节处理人部门"] == linkName) & ((data_frame["环节处理结束时间"] - data_frame["环节处理开始时间"]) <= time_limit_delta)] # #及时率 if len(data1)>0: timelinessRate='{:.2%}'.format(len(data2)/len(data1)) else: timelinessRate=None print(data2) 提示报错TypeError: unsupported operand type(s) for -: 'str' and 'str'
时间: 2023-07-16 09:15:10 浏览: 126
python数据分析与可视化 import pandas as pd import numpy as np import m
这个错误是由于 `data_frame["环节处理结束时间"]` 和 `data_frame["环节处理开始时间"]` 的类型都是字符串,不能直接相减导致的。你需要将它们转换为 `datetime` 类型,然后再相减。可以使用 `pd.to_datetime` 函数将字符串转换为 `datetime` 类型。
修改代码如下:
```
import pandas as pd
from datetime import datetime, timedelta
filePath="D:\\Mercy\\项目1\\工单环节明细列表2023-05-22.xlsx"
link="中台支撑处理"
linkName="业务支撑中心"
timeLimit="00:10:00"
# 将时间差转换为 timedelta 类型
time_limit = datetime.strptime(timeLimit, "%H:%M:%S").time()
time_limit_delta = timedelta(hours=time_limit.hour, minutes=time_limit.minute, seconds=time_limit.second)
data_frame=pd.read_excel(filePath,sheet_name="工单环节明细列表2023-05-22")
# 将时间字符串转换为 datetime 类型
data_frame["环节处理开始时间"] = pd.to_datetime(data_frame["环节处理开始时间"])
data_frame["环节处理结束时间"] = pd.to_datetime(data_frame["环节处理结束时间"])
data1=data_frame[(data_frame["环节名称"]==link) & (data_frame["环节处理人部门"]==linkName)]
data2=data_frame[(data_frame["环节名称"] == link) & (data_frame["环节处理人部门"] == linkName) & ((data_frame["环节处理结束时间"] - data_frame["环节处理开始时间"]) <= time_limit_delta)]
# 及时率
if len(data1)>0:
timelinessRate='{:.2%}'.format(len(data2)/len(data1))
else:
timelinessRate=None
print(data2)
```
希望能帮到你!
阅读全文