首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果时间戳关闭,则删除重复

如果时间戳关闭,则删除重复
EN

Stack Overflow用户
提问于 2020-10-21 14:37:44
回答 1查看 48关注 0票数 0

我有一个关于谁在工作、在哪个任务中以及他/她什么时候开始工作的“日志”信息:

代码语言:javascript
复制
 index |    Entrance time   | Name | Last name | Employee_ID  | Task
 --------------------------------------------------------------------
   0   |2000-01-01 00:00:00 | John |  Fischer  |    001       | Maintenance
   1   |2000-01-01 00:04:30 | John |  Fischer  |    001       | Development
   2   |2000-01-01 00:04:30 | Bob  |  Conrad   |    002       | Maintenance
   3   |2000-01-01 00:10:00 | Mary |  Smith    |    003       | Multitasking
   4   |2000-01-01 00:09:30 | John |  Fischer  |    001       | Maintenance
   5   |2000-01-01 00:15:30 | John |  Fischer  |    001       | Maintenance
   6   |2000-01-02 00:04:30 | Bob  |  Conrad   |    002       | Maintenance
   7   |2000-01-02 00:10:00 | Mary |  Smith    |    003       | Multitasking

然后,我想消除重复,如果入口时间差之间的一个我们正在寻找和其余是低于10分钟,如果任务和名称是相同的。因此,由此产生的数据应该是:

代码语言:javascript
复制
 index |    Entrance time   | Name | Last name | Employee_ID  | Task
 --------------------------------------------------------------------
   0   |2000-01-01 00:00:00 | John |  Fischer  |    001       | Maintenance
   1   |2000-01-01 00:04:30 | John |  Fischer  |    001       | Development
   2   |2000-01-01 00:04:30 | Bob  |  Conrad   |    002       | Maintenance
   3   |2000-01-01 00:10:00 | Mary |  Smith    |    003       | Multitasking
   5   |2000-01-01 00:15:30 | John |  Fischer  |    001       | Maintenance
   6   |2000-01-02 00:04:30 | Bob  |  Conrad   |    002       | Maintenance
   7   |2000-01-02 00:10:00 | Mary |  Smith    |    003       | Multitasking

我使用了drop_duplicates(subset="Name“、"Last”、"Task"),但我不知道如何应用时间条件来比较每一行和其余行。

希望你能帮我,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-22 16:23:59

对于时间差的计算,这可能会对你有所帮助。但是,您还需要根据重复情况应用您的条件。

代码语言:javascript
复制
# Make df sequential in ["Name", "Last name", "Task"]
df.sort_values(["Name", "Last name", "Task"], inplace=True)

# Compute time difference 
temp = df['Entrance time'] - df['Entrance time'].shift()

# converts the difference in terms of minutes (taking into account absolute values)
df['diff_mins'] = temp.abs() /np.timedelta64(1,'m')

产出:

代码语言:javascript
复制
2  2  2000-01-01 00:04:30  Bob   Conrad   2  Maintenance    nan
6  6  2000-01-02 00:04:30  Bob   Conrad   2  Maintenance   1440
1  1  2000-01-01 00:04:30  John  Fischer  1  Development   1440
0  0  2000-01-01 00:00:00  John  Fischer  1  Maintenance      4.5
4  4  2000-01-01 00:09:30  John  Fischer  1  Maintenance      9.5
5  5  2000-01-01 00:15:30  John  Fischer  1  Maintenance      6
3  3  2000-01-01 00:10:00  Mary  Smith    3  Multitasking     5.5
7  7  2000-01-02 00:10:00  Mary  Smith    3  Multitasking  1440
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64465943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档