如何计算确定日期内的重复次数?

2024-05-06 21:31:44 发布

您现在位置:Python中文网/ 问答频道 /正文

cpf  day  startdate              enddate
1234  1   08/01/2018 12:50:0     08/01/2018 15:30:0
1234  1   08/01/2018 14:30:0     08/01/2018 15:40:0
1234  1   08/01/2018 14:50:0     08/01/2018 15:50:0
1234  2   08/02/2018 20:20:0     08/02/2018 23:50:0
1234  2   08/02/2018 22:50:0     08/02/2018 23:50:0
1235  1   08/01/2018 11:50:0     08/01/2018 15:20:0
5212  1   08/01/2018 14:50:0     08/01/2018 15:20:0

我需要计算cpf专栏一天的对话时间。例如,第一个cpf是1234,所以在第一天,这个cpf在2018年1月8日12:50:0发起了一个对话,而对话的结束时间是2018年1月8日15:50:0,我需要的正是这个关于enddate-startdate的减法,但是像1234在2018年1月8日有三个对话,减法是第一次谈话的第一个小时减去最后一次谈话的最后一个小时。我该怎么做

  cpf  day  startdate              enddate              Time_Conversation
    1234  1   08/01/2018 12:50:0     08/01/2018 15:30:0         3:00:0
    1234  1   08/01/2018 14:30:0     08/01/2018 15:40:0         3:00:0
    1234  1   08/01/2018 14:50:0     08/01/2018 15:50:0         3:00:0
    1234  2   08/02/2018 20:20:0     08/02/2018 23:50:0         3:30:0
    1234  2   08/02/2018 22:50:0     08/02/2018 23:50:0         3:30:0
    1235  1   08/01/2018 11:50:0     08/01/2018 15:20:0         4:30:0
    5212  1   08/01/2018 14:50:0     08/01/2018 15:20:0         4:30:0

Tags: time时间对话小时dayconversationcpf专栏
1条回答
网友
1楼 · 发布于 2024-05-06 21:31:44

使用groupby+transform

#df[['startdate','enddate']]=df[['startdate','enddate']].apply(pd.to_datetime)
g=df.groupby(['cpf' ,'day'])
df['DIFF']=g.enddate.transform('last')-g.startdate.transform('first')

相关问题 更多 >