Given
df = pd.DataFrame({"LOCATION":["USA","USA","USA","USA","USA","USA","USA","JAPAN","JAPAN"],"CAR":["BMW","BMW","BMW","BMW","BMW","TOYOTA","FORD","BMW","FORD"],"SALE_DATE":[2017,2017,2017,2018,2018,2018,2019,2019,2019]})
Will result in:
CAR LOCATION SALE_DATE
0 BMW USA 2017
1 BMW USA 2017
2 BMW USA 2017
3 BMW USA 2018
4 BMW USA 2018
5 TOYOTA USA 2018
6 FORD USA 2019
7 BMW JAPAN 2019
8 FORD JAPAN 2019
What would be a pythonian way to add a 'position' based on the year. In other words, if the year is 'new' start from 0 until you have a new one.
To visualize it, I'm manually adding column["position"] where the end result should look like this:
CAR LOCATION SALE_DATE POSITION
0 BMW USA 2017 0
1 BMW USA 2017 1
2 BMW USA 2017 2
3 BMW USA 2018 0
4 BMW USA 2018 1
5 TOYOTA USA 2018 2
6 FORD USA 2019 0
7 BMW JAPAN 2019 1
8 FORD JAPAN 2019 2