我有以下数据框:
cpf day startdate enddate
1234 1 08/01/2018 12:50:0 08/01/2018 15:50:0
1234 1 08/01/2018 14:30:0 08/01/2018 15:50: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在08/01/2018 12:50:0发起了一次对话,对话的结束是08/01/2018 15:50:0,我需要的是确切地说,这个关于结束日期的减法-开始日期。我怎样才能做到这一点?
cpf day startdate enddate Time_Conversation
1234 1 08/01/2018 12:50:0 08/01/2018 15:50:0 3:00:0
1234 1 08/01/2018 14:30:0 08/01/2018 15:50: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
最佳答案
取决于几件事,但是假设startdate
和enddate
是pandas.Timestamp
列,则可以简单地执行以下操作:
df["Time_Conversation"] = (df["enddate"] - df["startdate"]).astype("timedelta64[s]")
这将为您提供对话进行的总秒数。然后根据需要将其格式化为hh:mm:ss。
如果
startdate
和enddate
为字符串类型的列,则需要另外转换为正确的格式。import pandas as pd
df["startdate"] = pd.to_datetime(df["startdate"], infer_datetime_format=True)
df["enddate"] = pd.to_datetime(df["enddate"] ,infer_datetime_format=True)
df["Time_Conversation"] = (df["enddate"] - df["startdate"]).astype("timedelta64[s]")
关于python - 如何计算确定天的cpf重复次数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52704126/