I'm working on an airline dataset. I've to calculate the number of adults, children's and infants per airline_pnr number and then append those values as a column in a data frame.
Pax Type: Passenger type(Adult(ADT), Children(CHD), Infant(INF))
+-------------+----------+
| airline_pnr |Pax_Type |
+-------------+----------+
| EIPBGB | ADT |
| EIPBGB | ADT |
| EIPBGB | CHD |
| EIPBGB | INF |
| UH7EQV | ADT |
| UH7EQV | ADT |
| YVEEW | ADT |
| YVEEW | ADT |
| DR6YWR | ADT |
| DR6YWR | ADT |
| DR6YWR | ADT |
| DR6YWR | CHD |
| DR6YWR | INF |
| QJ2ESP | ADT |
| QJ2ESP | CHD |
| JL6E9T | ADT |
| VGYD5V | ADT |
| YVEG1 | ADT |
| YVEG1 | ADT |
+-------------+----------+
Expected output:
+--------+----------+--------------+-----------------+---------------+
|air_pnr | Pax Type | no_of_adults | no_of_childrens | no_of_infants |
+--------+----------+--------------+-----------------+---------------+
| EIPBGB | ADT | 2 | 1 | 1 |
| UH7EQV | ADT | 2 | 0 | 0 |
| YVEEW | ADT | 2 | 0 | 0 |
| DR6YWR | ADT | 3 | 1 | 1 |
| QJ2ESP | ADT | 1 | 1 | 0 |
| JL6E9T | ADT | 1 | 0 | 0 |
| VGYD5V | ADT | 1 | 0 | 0 |
| YVEG1 | ADT | 2 | 0 | 0 |
+--------+----------+--------------+-----------------+---------------+
My Efforts:
df= df.value_counts(['airline_pnr', 'Pax Type'])
df = df.to_frame()
df= df.rename(columns = {0: "freq"})
But not getting the desired results