I have a dataset where I would like to replace and update values within a column when a data condition is met.
Data
ID Date State File
AA Q122 NY closed
AA Q222 NY closed
AA Q322 NY closed
AA Q422 NY closed
AA Q123 NY closed
AA Q223 NY closed
AA Q323 NY closed
AA Q423 NY closed
BB Q124 CA closed
BB Q224 CA open
BB Q324 CA open
BB Q424 CA open
BB Q125 CA open
BB Q225 CA open
BB Q325 CA open
BB Q425 CA open
Desired
ID Date State File
AA Q122 NY yes
AA Q222 NY yes
AA Q322 NY yes
AA Q422 NY yes
AA Q123 NY yes
AA Q223 NY closed
AA Q323 NY closed
AA Q423 NY closed
BB Q124 CA closed
BB Q224 CA open
BB Q324 CA open
BB Q424 CA open
BB Q125 CA open
BB Q225 CA open
BB Q325 CA open
BB Q425 CA open
Doing
df.loc[(df['ID'].eq('AA')) & (df['Date'] <= 'Q123'), 'File'] = 'yes'
**However this is not capturing the quarter order and assigns the string 'yes' to rows that do not meet the condition of less than or = to Q123.**
Still researching, any suggestion is appreciated- Perhaps I need to convert quarters to datetime longdate and base the condition off of this column.