要计算时间差小于15秒的比例,可以在计算时间差后添加一个步骤。以下是更新后的代码:
python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('your_file.xlsx', sheet_name='Sheet1')
# 遍历每一行,如果所有日期时间列都有效,则转换并计算时间差
for i, row in df.iterrows():
try:
task_time = pd.to_datetime(row['任务下发时间'])
feedback_time = pd.to_datetime(row['播测反馈时间'])
# 计算时间差
time_diff = feedback_time - task_time
# 将时间差转换为小时、分钟和秒的字符串格式
hours, remainder = divmod(time_diff.seconds, 3600)
minutes, seconds = divmod(remainder, 60)
df.at[i, '时间差'] = f"{hours:02d}:{minutes:02d}:{seconds:02d}"
# 判断时间差是否小于15秒
if time_diff.total_seconds() < 15:
df.at[i, '是否小于15s'] = '是'
else:
df.at[i, '是否小于15s'] = '否'
except ValueError:
# 如果出现ValueError(如单元格内容为"--"),则不处理
pass
# 计算小于15秒的比例
success_count = df['是否小于15s'].eq('是').sum()
total_count = len(df)
success_rate = success_count / total_count
# 将比例写入新列
df['小于15s比例'] = success_rate
# 将结果写回Excel文件
df.to_excel('your_file_with_time_diff.xlsx', index=False, sheet_name='Sheet1_with_Differences')
print(f"时间差小于15秒的比例: {success_rate * 100:.2f}%")
这段代码在计算时间差后,判断是否小于15秒,并在新列是否小于15s
中记录结果。然后,计算小于15秒的比例,并将其写入新列小于15s比例
。请将your_file.xlsx
替换为你的实际文件名。