The question
The East depot needs a list of completed deliveries, longest first.
df Focused extractYour inputs
df
One row is one delivery. The handoff is for completed East-depot records only; durations are minutes.
Field meanings and units
delivery_id- Delivery identifier.
depot- Depot responsible for the delivery.
status- Recorded delivery state.
minutes- Elapsed duration in minutes; unknown is not zero.
weight_kg- Weight in kilograms.
date- Calendar date supplied as YYYY-MM-DD text unless the task states it is invalid.
delivery_id | depot | status | minutes | weight_kg | date |
|---|---|---|---|---|---|
| D001 | East | Delivered | 32 | 1.2 | 2026-04-01 |
| D002 | West | Delivered | 48 | 1.9 | 2026-04-01 |
| D003 | North | Pending | 25 | 2.6 | 2026-04-02 |
| D004 | East | Returned | 61 | 3.3 | 2026-04-02 |
| D005 | West | Delivered | 45 | 4 | 2026-04-03 |
View all 18 rows
delivery_id | depot | status | minutes | weight_kg | date |
|---|---|---|---|---|---|
| D001 | East | Delivered | 32 | 1.2 | 2026-04-01 |
| D002 | West | Delivered | 48 | 1.9 | 2026-04-01 |
| D003 | North | Pending | 25 | 2.6 | 2026-04-02 |
| D004 | East | Returned | 61 | 3.3 | 2026-04-02 |
| D005 | West | Delivered | 45 | 4 | 2026-04-03 |
| D006 | North | Delivered | 37 | 1.2 | 2026-04-03 |
| D007 | East | Pending | 72 | 1.9 | 2026-04-04 |
| D008 | West | Returned | 29 | 2.6 | 2026-04-04 |
| D009 | North | Delivered | 33 | 3.3 | 2026-04-05 |
| D010 | East | Delivered | 49 | 4 | 2026-04-05 |
| D011 | West | Pending | 26 | 1.2 | 2026-04-06 |
| D012 | North | Returned | 62 | 1.9 | 2026-04-06 |
| D013 | East | Delivered | 46 | 2.6 | 2026-04-07 |
| D014 | West | Delivered | 38 | 3.3 | 2026-04-07 |
| D015 | North | Pending | 73 | 4 | 2026-04-08 |
| D016 | East | Returned | 30 | 1.2 | 2026-04-08 |
| D017 | West | Delivered | 34 | 1.9 | 2026-04-09 |
| D018 | North | Delivered | 50 | 2.6 | 2026-04-09 |
The editable setup in Your Python creates these inputs when you run it.
The East depot needs a list of completed deliveries, longest first.
extractDataFramerecord_countnumberDeliverables
Make the outputs listed below. Use each name exactly as shown. Then choose Check answer.
Python name key
Teal outlines name table columns. Violet left rules name Python objects. Dotted rules mark syntax, functions and parameters. Use each name exactly as shown.
- Depot handoffOutput
extractDataFrame- Create
extractfordepotEast andstatusDelivered. - Keep
delivery_id,minutesandweight_kg, ordered byminutesdescending thendelivery_idascending.
- Create
- Record countOutput
record_countnumber- Store the number of selected records in
record_count.
- Store the number of selected records in
Data policy Keep all supplied source tables unchanged. Work on separate outputs.
Help Hints & explained solution
Choose the amount of help you need. Opening one hint does not reveal the others.
Hint 1 — Think
Which conditions must a record satisfy at the same time?
Hint 2 — Tools
loc, boolean conditions and sort_values()
Revisit: Pick several columns · Combine conditions · Sort the table
Hint 3 — Approach
Select the specified depot and completed status, retain the requested fields, then order the handoff and count it.
Explained solution
Add these lines below # Your work in the editor. The supplied input setup is already there.
extract = df.loc[
(df.depot == 'East') & (df.status == 'Delivered'),
['delivery_id', 'minutes', 'weight_kg'],
].sort_values(['minutes', 'delivery_id'], ascending=[False, True])
record_count = len(extract)
extractView supplied setup
This code is already at the top of the editor.
import pandas as pd
# Supplied input: df (18 rows)
df = pd.DataFrame(
[
('D001', 'East', 'Delivered', 32, 1.2, '2026-04-01'),
('D002', 'West', 'Delivered', 48, 1.9, '2026-04-01'),
('D003', 'North', 'Pending', 25, 2.6, '2026-04-02'),
('D004', 'East', 'Returned', 61, 3.3, '2026-04-02'),
('D005', 'West', 'Delivered', 45, 4, '2026-04-03'),
('D006', 'North', 'Delivered', 37, 1.2, '2026-04-03'),
('D007', 'East', 'Pending', 72, 1.9, '2026-04-04'),
('D008', 'West', 'Returned', 29, 2.6, '2026-04-04'),
('D009', 'North', 'Delivered', 33, 3.3, '2026-04-05'),
('D010', 'East', 'Delivered', 49, 4, '2026-04-05'),
('D011', 'West', 'Pending', 26, 1.2, '2026-04-06'),
('D012', 'North', 'Returned', 62, 1.9, '2026-04-06'),
('D013', 'East', 'Delivered', 46, 2.6, '2026-04-07'),
('D014', 'West', 'Delivered', 38, 3.3, '2026-04-07'),
('D015', 'North', 'Pending', 73, 4, '2026-04-08'),
('D016', 'East', 'Returned', 30, 1.2, '2026-04-08'),
('D017', 'West', 'Delivered', 34, 1.9, '2026-04-09'),
('D018', 'North', 'Delivered', 50, 2.6, '2026-04-09'),
],
columns=['delivery_id', 'depot', 'status', 'minutes', 'weight_kg', 'date'],
)Why these steps exist
- Both conditions must hold on the same record; accepting either would include unrelated deliveries.
- The secondary ID order makes ties reproducible without changing the longest-first requirement.
Another valid approach
A boolean mask with column selection or an equivalent query can select the same records. The tie-break and final order still matter.