All problems

Each Rider's Most-Frequent Driver

hardPythonMergeGroupByRanking

UrbanHop wants to experiment with letting riders "favorite" a driver for auto-matching, starting with whoever they've ridden with most. Ops runs the same report over cancelled trips as well, hunting for a rider who keeps being dropped by the same driver — so which outcome the report counts is decided when it is run, not written into it.

Riders

id name city signup_date
1 Maya Chen Austin 2023-01-05
2 Noah Patel Denver 2023-02-14
3 Zara Ahmed Austin 2023-03-01
4 Leo Kim Seattle 2023-04-20
5 Ivy Brooks Denver 2023-05-11

Rides

id rider_id driver_id distance_km fare ride_date status
1 1 1 5.2 12.5 2023-06-01 completed
2 1 2 3 8 2023-06-03 completed
3 2 2 10 22 2023-06-02 completed
4 3 1 2.1 6.5 2023-06-05 cancelled
5 3 4 4.4 11 2023-06-06 completed
6 4 3 7.8 18 2023-06-04 completed
7 5 2 1.5 5 2023-06-07 cancelled
8 2 2 12.3 26.5 2023-06-10 completed
9 1 1 6.6 15 2023-06-12 completed
10 4 3 3.3 9 2023-06-15 completed
11 5 2 8.8 19.5 2023-06-18 completed
12 3 1 2.9 7.5 2023-06-20 cancelled

Drivers

id name city rating
1 Sam Rios Austin 4.9
2 Priya Desai Denver 4.6
3 Oscar Lund Seattle 4.8
4 Nina Cole Austin 4.2

Input

The DataFrames above are already built for you. One line of input arrives: the ride outcome the report is about, spelled exactly as it appears in the status column.

Task: Counting only rides that ended with that outcome, find each rider's most-frequent driver — the one they share the most such rides with. Print a dict mapping rider name → that driver's name, with the riders in id order. A rider with no rides of that outcome has no entry at all, so an outcome nobody has recorded prints an empty dict.

Sign in to solve this problem

Reading problems is free for everyone — solving them (Run, Submit, and tracking what you've solved) needs an account.

Sign in

Discussion

Sign in to join the discussion — reading is open to everyone.

Loading comments…