美文网首页
对时间进行取中位数、平均值

对时间进行取中位数、平均值

作者: thirsd | 来源:发表于2023-05-13 12:36 被阅读0次

零、背景

在工作中,经常需要分析处理的时间问题,除了耗时,还需要分析时间节点。例如,某个操作一般在什么时候完成的。

一、处理方案

第一步,将时间转化为数字;
第二步,将数字取需要的范围或者中位数;
第三步,将所取数字还原为字符串格式;

二、处理代码

from datetime import datetime, timedelta
time_list = ["09:30", "09:20", "09:21", "09:22", "09:20", "09:21", "09:22", "09:28"]

def get_median(ldata):
    sort_data = sorted(ldata)
    half = len(ldata)//2
    return (sort_data[half] + sort_data[-half]) / 2

def trans_stime_to_num(time_str, time_format):
    return (datetime.strptime(time_str, time_format) - datetime(2000, 1, 1)).seconds

def trans_num_to_stime(num, time_format):
    return (datetime(2000, 1, 1) + timedelta(seconds=num)).strftime(time_format)

time_nums = [trans_stime_to_num(t, "%H:%M") for t in time_list]

print(trans_num_to_stime(get_median(time_nums), "%H:%M"))

三、需要注意的问题

1、python datetime 报错OSError: [Errno 22] Invalid argument
在windows服务器中,对于时间数字,通常该数值会被限制在 1970 年至 2038 年之间。当默认仅使用时间格式是,默认为1900年,导致转化时报错。
处理方式:

将默认的时间转化至2000年之后。

相关文章

  • Java基本算法——二分查找算法

    二分查找算法 每次查找取数组中位数的值进行比较,如果目标值值大于中位数的值,则截取中位数右侧的数组再次进行二分查找...

  • R语言--统计(六)

    1. 平均值、中位数和模式 Mean平均值I. 语法用于计算R中的平均值的基本语法是 -mean(x, trim ...

  • 295. 数据流的中位数

    中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。 例如, [2,3,4] 的中位数是 ...

  • paper2

    描述分析就是研究定量数据的整体情况、整体水平如何等;通常使用平均值、中位数来对数据进行描述。具体结果整体如下:va...

  • 描述统计学

    1.平均值:算术平均数,描述平均水平。 2.中位数:从小到大排列数据,取中间位置的数据,描述中等水平。 3.众数:...

  • 中值 众数 均值

    中值也称中位数 如果数据是奇数个,那大小最中间那个就是 如果数据是偶数个,那个取中间2位的平均值 你的题目是4个数...

  • leetcode 295. 数据流的中位数

    题目描述 中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。相关话题: 堆、设计    ...

  • 1、均值 ,中位数,众数

    均值 均值是将数据综合除以这组数据的个数 中位数 中位数是将数据按照从小到大升序进行排列后取最中间的数值。数据的数...

  • 可汗学院-统计学

    【1】 均值 中位数 平均数 均数mean:算数平均数 所有数字总和的平均值 统计学意义:衡量集中趋势 中位数me...

  • 【2018-08-25】A股主要指数的市盈率(PE)估值高度

    中证1000(SH000852)- 2018-08-24日, 当前值:21.5463, 平均值:51.8, 中位数...

网友评论

      本文标题:对时间进行取中位数、平均值

      本文链接:https://www.haomeiwen.com/subject/xzoysdtx.html