首页 > 其他分享 >1741. 查找每个员工花费的总时间

1741. 查找每个员工花费的总时间

时间:2023-08-13 22:00:13浏览次数:48  
标签:花费 employees day 查找 2020 emp time 1741 out

1741. 查找每个员工花费的总时间

2023年8月13日21:39:21

1741. 查找每个员工花费的总时间

简单

SQL Schema


Pandas Schema


表: Employees

+-------------+------+
| Column Name | Type |
+-------------+------+
| emp_id      | int  |
| event_day   | date |
| in_time     | int  |
| out_time    | int  |
+-------------+------+
在 SQL 中,(emp_id, event_day, in_time) 是这个表的主键。
该表显示了员工在办公室的出入情况。
event_day 是此事件发生的日期,in_time 是员工进入办公室的时间,而 out_time 是他们离开办公室的时间。
in_time 和 out_time 的取值在1到1440之间。
题目保证同一天没有两个事件在时间上是相交的,并且保证 in_time 小于 out_time。

计算每位员工每天在办公室花费的总时间(以分钟为单位)。 请注意,在一天之内,同一员工是可以多次进入和离开办公室的。 在办公室里一次进出所花费的时间为out_time 减去 in_time。

返回结果表单的顺序无要求。
查询结果的格式如下:

示例 1:

输入:
Employees table:
+--------+------------+---------+----------+
| emp_id | event_day  | in_time | out_time |
+--------+------------+---------+----------+
| 1      | 2020-11-28 | 4       | 32       |
| 1      | 2020-11-28 | 55      | 200      |
| 1      | 2020-12-03 | 1       | 42       |
| 2      | 2020-11-28 | 3       | 33       |
| 2      | 2020-12-09 | 47      | 74       |
+--------+------------+---------+----------+
输出:
+------------+--------+------------+
| day        | emp_id | total_time |
+------------+--------+------------+
| 2020-11-28 | 1      | 173        |
| 2020-11-28 | 2      | 30         |
| 2020-12-03 | 1      | 41         |
| 2020-12-09 | 2      | 27         |
+------------+--------+------------+
解释:
雇员 1 有三次进出: 有两次发生在 2020-11-28 花费的时间为 (32 - 4) + (200 - 55) = 173, 有一次发生在 2020-12-03 花费的时间为 (42 - 1) = 41。
雇员 2 有两次进出: 有一次发生在 2020-11-28 花费的时间为 (33 - 3) = 30,  有一次发生在 2020-12-09 花费的时间为 (74 - 47) = 27。

通过次数

31.9K

提交次数

37.7K

通过率

84.5%

答案 两个方案

import pandas as pd

def total_time(employees: pd.DataFrame) -> pd.DataFrame:


    employees["total_time"] = employees["out_time"] - employees["in_time"]
    employees = employees.groupby(["event_day", "emp_id"],as_index=False)["total_time"].sum()#.reset_index()
    return employees.rename({"event_day": "day"}, axis=1)



    
    # employees = employees.groupby(by=["event_day","emp_id"],as_index=False).apply( lambda x:(x["out_time"]-x["in_time"]).sum()).sort_values("emp_id")
    # employees.columns = ['day','emp_id','total_time'] 
    # return employees

    # # return pd.DataFrame({"ttext":lmq})

标签:花费,employees,day,查找,2020,emp,time,1741,out
From: https://www.cnblogs.com/lmq886/p/17627371.html

相关文章

  • 704. 二分查找
    参考链接:https://programmercarl.com/0704.二分查找.html#思路给定一个n个元素有序的(升序)整型数组nums和一个目标target,写一个函数搜索nums中的target,如果目标值存在,就返回下标,否则返回-1。tips:假设nums所有元素不重复n在[1,10000]之间nums的每个元素都将在[-9999,9999]之......
  • 查找算法——顺序查找
    基于无序链表的顺序查找:在查找中我们一个一个地顺序遍历符号表中的所有键并使用equals()方法来寻找与被查找的键匹配的键。无序链表查找的性能上面get()方法中查找第一个键需要1次比较,查找第二个需要2次比较,如此这般,平均比较次数为(1+2+...+N)/N,也就是(N+1)/2~N/2。比较的总次数......
  • C++STL库 二分查找,以及对set集合进行二分查找,来源于”leetcode7022. 限制条件下元素之
    C++的头文件<algorithm>中有用于二分查找的函数,lower_bound()、upper_bound()以及binary_search():lower_bound():返回大于等于目标值的第一个位置upper_bound():返回大于目标值的第一个位置,binary_search():若目标值存在则返回true,否则返回false参数列表:(起始位置,结束位置,目标值) ......
  • #yyds干货盘点# LeetCode程序员面试金典:查找和最小的 K 对数字
    1.简述:给定两个以 非递减顺序排列 的整数数组 和  , 以及一个整数  。nums1nums2k定义一对值 ,其中第一个元素来自 ,第二个元素来自  。(u,v)nums1nums2请找到和最小的  个数对 , k(u1,v1) (u2,v2)(uk,vk) 示例1:输入:nums1=[1,7,11],nums2=[2,4,6],k=3......
  • 1517. 查找拥有有效邮箱的用户
    1517.查找拥有有效邮箱的用户2023年8月12日20:27:491517.查找拥有有效邮箱的用户简单SQLSchemaPandasSchema表:Users+---------------+---------+|ColumnName|Type|+---------------+---------+|user_id|int||name|varchar......
  • Python教程(7)——一文弄懂Python字符串操作(上)|字符串查找|字符串分割|字符串拼接|
    (Python字符串操作)字符串简介在计算机编程中,字符串是由字符组成的字节序列。在Python中,字符串是表示文本数据的数据类型,由一系列Unicode字符组成。字符串可以包含字母、数字、标点符号、空格以及其他特殊字符。实际工作当中,接触最多的可能就是字符串了。字符串也是Python中最......
  • Python教程(7)——一文弄懂Python字符串操作(上)|字符串查找|字符串分割|字符串拼接|
    目录字符串简介字符串查找使用in关键字使用find()方法使用index()方法使用正则表达式字符串替换使用replace()方法使用正则表达式使用字符串模板字符串分割字符串拼接使用加号(+)运算符使用字符串的格式化方法使用f-string(格式化字符串)使用字符串的join()方法字符串......
  • 顺序查找(线性查找)
    博客地址:https://www.cnblogs.com/zylyehuo/#_*_coding:utf-8_*_fromcal_timeimport*@cal_timedeflinear_search(li,val):forind,vinenumerate(li):ifv==val:returnindelse:returnNoneli=list(range(100000......
  • locate快速查找某文件路径会报以下错误
    部分版本的linux系统使用locate快速查找某文件路径会报以下错误:-bash:locate:commandnotfound其原因是没有安装mlocate这个包安装:yum-yinstallmlocate安装完再尝试用locate定位内容,发现依然不好使,报了新的错误:locate:cannotstat()`/var/lib/mlocate/mlocate.db':No......
  • 实践|Linux 中查找和删除重复文件
    动动发财的小手,点个赞吧!如果您习惯使用下载管理器从互联网上下载各种内容,那么组织您的主目录甚至系统可能会特别困难。通常,您可能会发现您下载了相同的mp3、pdf和epub(以及各种其他文件扩展名)并将其复制到不同的目录。这可能会导致您的目录中充满各种无用的重复内容。在本教......