I have a column called as datetime
of type datetime64[ns]
and for eg: it is represented as 2019-10-27 06:00:00
I would like to create a new column called waves
which takes a interval from
datetime
and output as a categorical value
in the waves
table. I have attached a photo of the date range conidition for reference. I tried to use a loop for this , but I used a wrong syntax for it I believe.
def wave(row):
if (row["datetime"] <= pd.to_datetime("2019-11-16").time())&(row["datetime"] >= pd.to_datetime("2020-02-28").time()):
wave="before covid"
elif (row["datetime"] <= pd.to_datetime("2020-03-01").time())&(row["datetime"].dt.time >= pd.to_datetime("2020-06-15").time()):
wave="1st wave"
elif (row["datetime"].dt.time <= pd.to_datetime("2020-06-16").time())&(row["datetime"].dt.time >= pd.to_datetime("2020-09-30").time()):
wave="between waves"
elif (row["datetime"].dt.time <= pd.to_datetime("2020-10-01").time())&(row["datetime"].dt.time >= pd.to_datetime("2021-01-15").time()):
wave="2nd wave"
df["wave"]=df.apply(lambda row:wave(row),axis=1)