将连续日期分组在一起

2024-01-06

我在 Excel/csv 中有一个请病假的(许多)员工列表,按以下格式列出。每个病假实例都有自己的线路。我想添加另一列“结果”,它记录病期的长度。例如,Mon-Tues-Wed 表示这三个条目中的每一个都标有 3。

我是Python新手,我想知道这种方法是否理想,尽管我看不出SQL会变得更容易,除了为每个员工创建表(简单)然后对其进行分析(困难)

我的目标是能够将 1 天长的时间段与 10 天以上的时间段区分开。周末的奖励积分。

Person    Date       Result

A       02/04/2012     5

B       02/04/2012     2

A       03/04/2012     5

B       03/04/2012     2

A       04/04/2012     5

A       05/04/2012     5

A       06/04/2012     5

B       25/04/2012     1

A       25/04/2012     2

A       26/04/2012     2

B       30/04/2012     1

def group(iterable):
    myIter = iter(iterable)

    run = [next(myIter)]
    def continuesRun(x):
        return run[-1]==x-1

    for x in myIter:
        if continuesRun(x):
            run.append(x)
        else:
            yield run
            run = [x]
    yield run

Demo:

>>> list( group([1,10,11,12,20,21]) )
[[1], [10, 11, 12], [20, 21]]

要将其应用到您的情况,请定义函数continuesRun像这样,用伪代码:

def continuesRun(date):
    previousDate = run[-1]
    return previousDate==date-1day or (previousDate.weekday==Friday and previousDate==date-3day)

旁注:在我个人看来,将周末附近的病假时间计算为可能会多出 2 或 4 天,这在道德/务实上似乎有点错误。但如果你有充分的理由这样做,我又有什么资格去评判呢? =) 要计算这些,请对您的跑步进行后处理:如果第一天是星期一,则添加 2;如果最后一天是星期五,则添加 2,然后添加len(d for d in range(run[-1]-run[0]) if (run[0]+d*day).isWeekend())。当然这不包括假期,在这种情况下你会这样做.isHoliday() or .isWeekend()并使“add 2”逻辑与len(...)逻辑,通过迭代直到找到非假期,并在与跑步相邻的每个假期或周末惩罚该人。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将连续日期分组在一起 的相关文章

随机推荐

  • 自 Java 7 update 25 起,Applet.getCodeBase() 对本地 Applet 返回 null

    Since Java 7 更新 25 Applet的方法getCodeBase 似乎回来了NULL对于本地小程序 我还没有找到任何东西Java 7u25发行说明将宣布 解释此更改 但我发现电子邮件讨论 http permalink gman
  • UIAlertView 与 session.dataTaskWithRequest 的问题

    我有这段代码可以验证 IAP 收据 并且我尝试根据此函数返回的状态显示警报 但我不断收到此错误 This application is modifying the autolayout engine from a background th
  • 是否可以在 JavaScript 中链接 setTimeout 函数?

    是否可以连锁setTimout函数以确保它们相继运行 这里列出了三种不同的方法 手动嵌套setTimeout 回调 使用可链接的计时器对象 Wrap setTimeout 在承诺和连锁承诺中 手动嵌套 setTimeout 回调 当然 当第
  • JPA 标准教程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在尝试寻找 JPA Criteria API 教程 但没有取得太大成功 你知道有哪些适合初学者的
  • Xcode 4 代码感知不起作用

    我正在 Xcode 4 中运行 旧 Xcode 3 项目 代码感知不适用于我自己的类 我尝试过以下操作 清理 重建 删除派生数据 安装4 3文档 Restart 没有任何运气 有时代码感觉有效 但大多数情况下我只是得到 未完成 尝试这个 打
  • 套接字错误:[Errno 111] Ubuntu 上的连接被拒绝

    Traceback most recent call last s smtplib SMTP localhost File usr lib python2 7 smtplib py line 251 in init code msg sel
  • Fortify 源分析器和 Apache Lenya

    我正在尝试将 Fortify 源代码分析器用于我学校的一个研究项目 以测试开源 Java Web 应用程序的安全性 我目前正在研究 Apache Lenya 我正在使用最新的稳定版本 Lenya v2 0 2 根目录下有一个文件名为buil
  • 使用 querySelectorAll 时,Typescript 对象可能为“null”.ts(2531)

    class Test state elements container null constructor container HTMLElement null options permet de prendre les options du
  • 在 C# 中将文本添加到文件的开头和结尾

    我有一个进程可以获取一系列 xml 文件 我将 xml 放在引号中的原因是文件中的文本没有根元素 这会导致 xml 无效 在我的处理中 我想纠正这个问题并打开每个文件 在每个文件的开头和结尾添加一个根节点 然后将其关闭 这是我的想法 但这涉
  • 使用私钥通过 VSCode 连接到主机

    我想连接到远程服务器 我知道用户名和主机名 而且我也有private key pem文件 如何使用 VSCode 连接到该虚拟机 我在互联网上的解决方案中遇到了这个错误 这是合理的 因为我还没有导入这个private key pem文件在任
  • 对于没有字段的构造函数,reallyUnsafePtrEquality#

    据我了解 没有字段的类型的构造函数是 静态分配 的 并且 GHC在所有用途之间共享这些 https stackoverflow com a 3256825 176841 并且GC不会移动这些 https ghc haskell org tr
  • MD5 是否仍然足以唯一标识文件?

    考虑到 MD5 算法的破坏和安全问题等 MD5 散列文件是否仍然被认为是唯一识别该文件的足够好的方法 安全性不是我在这里最关心的问题 但唯一地标识每个文件才是 有什么想法吗 是的 MD5从安全角度来说已经被彻底攻破 但意外碰撞的概率仍然微乎
  • 对嵌套列表进行排序:从排序中排除第一项[重复]

    这个问题在这里已经有答案了 SET 我有一个csv file其中包括我的茶点的当前余额 它是逗号分隔的 但在本例中逗号 为了提高可读性而删除 NAME AMOUNT PRICE Coca Cola 8 1 25 Fanta 6 1 29 D
  • 嵌套集模型,对类别中的项目进行计数

    我有一个适用于我的网站的嵌套集模型 其中包含子类别等中的项目 除了一个我无法解决的问题之外 它运行得很好 item id item name 1 Laptop 2 iPod Classic 80GB 3 iPod Classic 160GB
  • Safari 不尊重 `transform-origin` SVG 属性

    我正在尝试使用构建 SVGtransform属性 但是 虽然我的 SVG 在 Chrome 和 Firefox 中看起来符合预期 但在 Safari 中看起来却损坏了 看来 Safari 不尊重transform origin属性并始终应用
  • Oracle ODP.Net 和连接池

    我想这确实是两个问题合二为一 我们开发了一个访问 Oracle 数据库的 Net 应用程序 并注意到在更改用户的 Oracle 密码后 该应用程序会在连接字符串中使用旧密码继续运行一小段时间 据推测 这与现有连接的池化方式有关 当第一次调查
  • jQuery:在子元素之前附加子元素

    我有这样的 HTML 代码 div div class foobar div div 我想在里面附加子元素div content之前div foobar元素 怎样才能做到这一点呢 在回答你的问题之前 让我先让你更清楚 更容易地了解一些事情
  • 检测列中导致 SQL 错误的单元格

    假设我们正在尝试更改 SQL 表中列的类型 例如varchar to float 使用 ALTER TABLE
  • 我的搜索没有在谷歌地图中显示其标记有什么问题?

    我创建了一个地方搜索谷歌地图 喜欢搜索学校类型等地方 我为私立和公立学校做了标记 搜索框有效 但是当我单击输入时 它不显示公立 私立学校 是这是因为我的代码 在图标上 或标记 唯一的问题是当我单击输入时 它不显示其标记
  • 将连续日期分组在一起

    我在 Excel csv 中有一个请病假的 许多 员工列表 按以下格式列出 每个病假实例都有自己的线路 我想添加另一列 结果 它记录病期的长度 例如 Mon Tues Wed 表示这三个条目中的每一个都标有 3 我是Python新手 我想知