I am trying to find the difference between 2 time and dates and result to be in a new column from a csv file(df).. Appreciate any help here..
elif file_path.endswith(".csv"):
df = pd.read_csv(file_path)
break
else:
df = pd.read_excel(file_path, engine="openpyxl")
break
# Transformations
df["open_time"] = np.where(
(
pd.to_datetime(df["Date/Time Opened"]).dt.date
+ pd.DateOffset(hours=17)
- pd.to_datetime(df["Date/Time Opened"])
).dt.total_seconds()
I am trying to find the difference between 2 time and dates and result to be in a new column from a csv file(df).. Appreciate any help here..
elif file_path.endswith(".csv"):
df = pd.read_csv(file_path)
break
else:
df = pd.read_excel(file_path, engine="openpyxl")
break
# Transformations
df["open_time"] = np.where(
(
pd.to_datetime(df["Date/Time Opened"]).dt.date
+ pd.DateOffset(hours=17)
- pd.to_datetime(df["Date/Time Opened"])
).dt.total_seconds()
Share
Improve this question
edited Mar 20 at 20:33
marc_s
757k184 gold badges1.4k silver badges1.5k bronze badges
asked Mar 3 at 18:41
Sunil MSunil M
1
1
- always put full error message because there are other useful information. – furas Commented Mar 5 at 3:10
1 Answer
Reset to default 1This is a typing issue - you just need to convert them to date time and then you can do the date math...
df["Date/Time Opened"] = pd.to_datetime(df["Date/Time Opened"])
df["Date/Time Closed"] = pd.to_datetime(df["Date/Time Closed"])
df["Duration (hours)"] = (df["Date/Time Closed"] - df["Date/Time Opened"]).dt.total_seconds() / 3600
Dates are stored in seconds, so the divide by 3600 is simply converting the seconds of the datetime fields into days in this instance.
Make sense?