Select the dataframe based on the certain time value in pandas

Question:

I have a dataframe

df = pd.DataFrame([["A","11:40 AM"],["B","12:51 PM"],["C","6:33 PM"],["D","11:13 AM"],["E","7:13 PM"]],columns=["id","time"])
id    time
A   11:40 AM
B   12:51 PM
C    6:33 PM
D   11:13 AM
E    7:13 PM

I want to select only those rows which are < 6:30 PM.

Expected output:

df = pd.DataFrame([["A","11:40 AM"],["B","12:51 PM"],["D","11:13 AM"]],columns=["id","time"])
id    time
A   11:40 AM
B   12:51 PM
D   11:13 AM

I tried df[(df['time'].dt.time < '18:30:00')]. It is giving an error. How to do it?

Asked By: Chethan

||

Answers:

Try converting to datetime first:

df.loc[pd.to_datetime(df['time']).le(pd.Timestamp('18:30:00'))]

Output:

  id      time
0  A  11:40 AM
1  B  12:51 PM
3  D  11:13 AM
Answered By: rhug123