python - 总结和划分时间的最佳方法
问题描述
import os
import csv
import pandas as pd
from datetime import datetime
read_file = pd.read_excel ('test.xlsx')
read_file['Duration'] = pd.to_datetime(read_file['Duration'])
hours = read_file['Duration'].dt.time
uren_lijst = []
for uren in hours:
uren_lijst.append(uren)
此脚本返回带有 datetime.time 对象的脚本。模数对时间不起作用。解决此问题的最佳方法是什么?
这就是我想做的:如果时间在 8:00 到 8:15 之间,我想将 8 加起来。如果时间在 8:15 和 9:00 之间,我想总结时间减去 00:15(例如,8:30 将总结 8:15)。8:00以下或9:00以上的所有内容都必须完全相加。
我试着计算回到秒,我也试着把它当作字符串来做,但这似乎不起作用。
输入是一个 xlsx 文件,其数据如下所示。电流输出:
['0:00', '8:13', '8:15', '6:42', '0:00', '8:12', '8:12', '8:16', '6:27', '8:20', '6:59', '0:00', '8:27', '8:22', '9:13', '8:26', '8:07', '6:28', '0:00', '8:17', '8:58', '8:10', '8:16', '7:33', '5:43', '0:00', '8:29', '6:54', '7:55', '8:10', '8:10', nan]
编辑:
我可能有点不清楚,我很抱歉。输入是小时和分钟的列表。我已将其转换并显示为列表(如上)。
这是一种在一定条件下的四舍五入。
每八小时应四舍五入到八到十五分钟(8:15)。(例如:8:13 变为 8:00)从 8:15 到 9:00 必须倒计时一刻钟。(例如:8:32 变为 8:17)。高于 9 和低于 8 的所有内容都保持原样。(例如:7:30 仍为 7:30,09:01 仍为 09:01)。这些小时的总和必须相加。
我希望这样更清楚。
解决方案
好吧,所以我以一种相当(可能是菜鸟)的方式自己做了,但嘿,它成功了。所以我首先计算了他们分钟和小时的秒数:
def seconden_convert(t):
h, m = [int(i) for i in t.split(':')]
return 3600*h + 60*m
之后,我只用几秒钟就将它们添加到了一个新列表中:
for uren in uren_lijst:
uren_lijst_correct.append(seconden_convert(uren))
然后,我用秒创建了一个 for 循环,并按照我需要的方式过滤它们:
uren_lijst_gefilterd = []
for seconden in uren_lijst_correct:
if seconden <= 28800 and seconden >= 100:
uren_lijst_gefilterd.append(seconden)
elif seconden >= 28801 and seconden <= 29700:
uren_lijst_gefilterd.append(29700)
elif seconden >=29701 and seconden <= 32399:
uren_lijst_gefilterd.append(seconden-900)
elif seconden >= 32400:
uren_lijst_gefilterd.append(seconden)
最后我把它计算回小时和分钟:
def uren_convert(seconds):
min, sec = divmod(seconds, 60)
hour, min = divmod(min, 60)
return "%d:%02d" % (hour, min)
这可能是一种非常繁琐的方式,但它确实有效,我从中学到了很多东西。
推荐阅读
- highcharts - HighChart 和 PDF 生成
- google-analytics - 具有二级维度的零唯一网页浏览量
- firebase - 我可以将 Google CloudFunctions 用于可靠的应用程序目的吗?
- javascript - 通过 selectpicker 自动插入输入表单
- php - 画布图像的 PHP CORS 代理
- function - 如何编写包含导入函数的自己定义的函数?
- python-3.x - For 循环问题不正确,我不知道为什么
- java - 如何在 Android 10+ 中获取外部存储目录路径
- python - 如何在 RPLY 中解析多行?
- twilio - Twilio 语音访问令牌到期时间