Python 熊猫计算datetime之间的持续时间,但不考虑特定的时间范围
为清楚起见,这里是MRE:Python 熊猫计算datetime之间的持续时间,但不考虑特定的时间范围,python,pandas,datetime,Python,Pandas,Datetime,为清楚起见,这里是MRE: df = pd.DataFrame( {"id":[1,2,3,4], "start_time":["2020-06-01 01:00:00", "2020-06-01 01:00:00", "2020-06-01 19:00:00", "2020-06-02 04:00:00"], "end_time":["2020-06-01 14:00:00", "2020-06-01 18:00:00", "2020-06-02 10:00:00", "
df = pd.DataFrame(
{"id":[1,2,3,4],
"start_time":["2020-06-01 01:00:00", "2020-06-01 01:00:00", "2020-06-01 19:00:00", "2020-06-02 04:00:00"],
"end_time":["2020-06-01 14:00:00", "2020-06-01 18:00:00", "2020-06-02 10:00:00", "2020-06-02 16:00:00"]
})
df["start_time"] = pd.to_datetime(df["start_time"])
df["end_time"] = pd.to_datetime(df["end_time"])
df["sub_time"] = df["end_time"] - df["start_time"]
这将产生:
id start_time end_time sub_time
0 1 2020-06-01 01:00:00 2020-06-01 14:00:00 13:00:00
1 2 2020-06-01 01:00:00 2020-06-01 18:00:00 17:00:00
2 3 2020-06-01 19:00:00 2020-06-02 10:00:00 15:00:00
3 4 2020-06-02 04:00:00 2020-06-02 16:00:00 12:00:00
但当开始时间~结束时间包含时间范围00:00:00~03:59:59am时,我希望忽略它(不以子时间计算)
因此,与上面的输出不同,我将得到:
id start_time end_time sub_time
0 1 2020-06-01 01:00:00 2020-06-01 14:00:00 10:00:00
1 2 2020-06-01 01:00:00 2020-06-01 18:00:00 14:00:00
2 3 2020-06-01 19:00:00 2020-06-02 10:00:00 11:00:00
3 4 2020-06-02 04:00:00 2020-06-02 16:00:00 12:00:00
第0行:从01:00:00开始直到04:00:00才计算。那么04:00:00~14:00:00就是10个小时
第2行:考虑时间从19:0:0:24:00和04:0:0:10:0:00,我们得到11:00在亚时间栏中。
有什么建议吗