A pandas DataFrame is a labelled, two-dimensional table in Python, and most analysis with it comes down to four moves: select the rows and columns you need, group and aggregate them, merge in another table, and derive new columns without looping. Doing that vectorised, with whole-column operations instead of a Python for loop, is what keeps the code both short and fast. These questions run real pandas in the browser against seeded DataFrames, so the output you check is the actual frame.
What you will practice
•Select and filter with loc, iloc and boolean masks instead of chained indexing
•Aggregate with groupby().agg() and reshape the result with reset_index and pivot_table
•Join frames using merge with the right how= and on= arguments, and check the row count afterwards
•Replace row-by-row loops and apply() with vectorised column arithmetic and np.where
•Handle missing data with isna, fillna and dropna before the numbers reach a report