I have this data frame where data is sorted based on time starting at around 9:15:00. Using df['t_factor'] = df.index.strftime("%H:%M:%S")
i converted index into only time values in an extra column. Now in this column, I want to represent this time with some decimal number, like say for 9:15:00 I want this to be converted into 9.25. Any idea how to do it in a single line?
The conversion formula is something like "9 15/60 0/3600", but I don't know how to access H, M, and S separately and write in a single line for the whole column.
CodePudding user response:
You could do this using the original index rather than the new column, especially since the new column will be text.
df["time_num"] = (
df["Time"].dt.hour df["Time"].dt.minute / 60 df["Time"].dt.second / 3600
)
P.S. Are you sure you need to include seconds?