亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果時間戳關閉則刪除重復項

如果時間戳關閉則刪除重復項

qq_花開花謝_0 2023-12-20 10:24:32
我有一個數據框,其中包含有關誰在工作、執行哪個任務以及他/她開始工作的時間的“日志”信息: 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 分鐘,并且任務和名稱相同,我想消除重復項。所以生成的數據框應該是: 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 name", "Task"]),但我不知道如何應用時間條件來將每一行與其余行進行比較。希望你能幫助我,提前謝謝你
查看完整描述

1 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

對于時差的計算,這可能會對您有所幫助。但是,您還需要根據重復案例應用您的條件。


# 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')

輸出:


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


查看完整回答
反對 回復 2023-12-20
  • 1 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號