Skip to content
Advertisement

filter dates using pandas from dataframe

I have a column of dates. I need to filter out those dates that fall between today’s date and end of the current month. If the dates fall between these dates then the next column showns “Y”

Date Column
01/02/2021
03/02/2021
31/03/2021 Y
01/03/2021
07/03/2021 Y
08/03/2021 Y

Since today’s date is 07/03/2021 three dates fall between 07/03/2021 and 31/03/2021.

Advertisement

Answer

Convert into datetime column using specific time format and compare with today‘s timestamp

df.Date = pd.to_datetime(df.Date, format='%d/%m/%Y')

today = pd.to_datetime('today').normalize()
end_of_month = today + pd.tseries.offsets.MonthEnd(1)

df['Column'] = np.where((df.Date >= today) & (df.Date <= end_of_month), 'Y', '')

Output

        Date Column
0 2021-02-01       
1 2021-02-03       
2 2021-03-31      Y
3 2021-03-01       
4 2021-03-07      Y
5 2021-03-08      Y
6 2021-04-02
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement