I have a dataframe like this:
Folder1 Folder2
0 2021-11-22 12:00:00 2021-11-24 10:00:00
1 2021-11-23 10:30:00 2021-11-25 18:30:00
2 2021-11-12 10:30:00 2021-11-15 18:30:00
3 2021-11-23 10:00:00 NaN
Using this code:
def strfdelta(td: pd.Timestamp):
seconds = td.total_seconds()
hours = int(seconds // 3600)
minutes = int((seconds % 3600) // 60)
seconds = int(seconds % 60)
return f"{hours:02}:{minutes:02}:{seconds:02}"
df["Folder1"] = pd.to_datetime(df["Folder1"])
df["Folder2"] = pd.to_datetime(df["Folder2"])
bm1 = df["Folder1"].notna() & df["Folder2"].notna()
bm2 = df["Folder1"].notna() & df["Folder2"].isna()
df["Time1"] = (df.loc[bm1, "Folder2"] - df.loc[bm1, "Folder1"]).apply(strfdelta)
df["Time2"] = (datetime.now() - df.loc[bm2, "Folder1"]).apply(strfdelta)
I have this df:
Folder1 Folder2 Time1 Time2
0 2021-11-22 12:00:00 2021-11-24 10:00:00 46:00:00 NaN
1 2021-11-23 10:30:00 2021-11-25 18:30:00 56:00:00 NaN
2 2021-11-12 10:30:00 2021-11-15 18:30:00 80:00:00 NaN
3 2021-11-23 10:00:00 NaN NaN 03:00:00
Basically, this is what i want, but, how can i exclude weekends hours when calculating the the difference between timestamps from Folder1 and Folder2? What should i change to have a df like this:
Folder1 Folder2 Time1 Time2
0 2021-11-22 12:00:00 2021-11-24 10:00:00 46:00:00 NaN
1 2021-11-23 10:30:00 2021-11-25 18:30:00 56:00:00 NaN
2 2021-11-12 10:30:00 2021-11-15 18:30:00 32:00:00 NaN
3 2021-11-23 10:00:00 NaN NaN 03:00:00
So, in row with index 2, 13.11 and 14.11 were weekends so, in Time 1 the difference should be 32 instead of 80