I have a dataframe which has the following columns:
| Date | Zip | Price | |
|---|---|---|---|
| 0 | 2019-01-01 | 90102 | 58.02 | 
| 1 | 2019-01-01 | 90102 | 81.55 | 
| 2 | 2019-01-01 | 90102 | 11.97 | 
| 3 | 2019-01-01 | 90102 | 93.23 | 
| 4 | 2019-01-01 | 90103 | 13.68 | 
I want to create a 4th column which should have ratio of price based on the max price in that zip and on that date.
So I have used another df called df_max_price
df_max_price = df.groupby(['Date','Zip'], as_index=False)['Price'].max()
| Date | Zip | Price | |
|---|---|---|---|
| 0 | 2019-01-01 | 90102 | 93.23 | 
| 1 | 2019-01-01 | 90103 | 13.68 | 
Now I want to have a new column in the df which shall be the ratio of Price and maxprice for that date and zip code
| Date | Zip | Price | Ratio | |
|---|---|---|---|---|
| 0 | 2019-01-01 | 90102 | 58.02 | 0.622 | 
| 1 | 2019-01-01 | 90102 | 81.55 | 0.875 | 
| 2 | 2019-01-01 | 90102 | 11.97 | 0.128 | 
| 3 | 2019-01-01 | 90102 | 93.23 | 1.000 | 
| 4 | 2019-01-01 | 90103 | 13.68 | 1.000 | 
The calculation is based on 58.02/93.23 and so on.
Can someone help me showing how it can be done using lambda function.
 
    