What this round is for
A data science round using Python tests two different things. One is whether you know the libraries. The other, which matters more, is whether you can be trusted not to produce a confident wrong number.
The questions below weight the second heavily, because joins that multiply rows, missingness that is not random and comparisons against unfinished periods are the errors that survive into published results.
The questions
Answer each one out loud before you open it. An answer you have read is not an answer you can
give under pressure, which is the only kind that counts.
Q1
Why is Python used for data science when it is slow?
Show the answer
Hide the answer
Because the heavy numerical work runs in compiled code and Python only drives it.
An operation on a million-row array loops in C, not in the interpreter. Python supplies the readable surface and something else supplies the speed.
What it is really testing.
Whether you know the heavy work is not happening in Python.
Q2
What is vectorisation and why does it matter so much?
Show the answer
Hide the answer
Applying an operation to a whole array at once rather than looping over elements.
The loop moves into compiled code, which is routinely a hundredfold difference. If you are iterating rows in Python you are almost always doing it wrong.
What it is really testing.
Whether you treat row iteration as a mistake rather than a style choice.
Q3
How does a NumPy array differ from a Python list?
Show the answer
Hide the answer
Fixed type, contiguous memory, and operations that apply to the whole array.
The contiguity is what lets the CPU process it efficiently; a list is a collection of pointers to objects scattered in memory.
What it is really testing.
Whether you mention memory layout rather than just typing.
Q4
What is broadcasting?
Show the answer
Hide the answer
Rules that let arrays of different shapes combine without copying or explicit loops.
Dimensions are compared from the right and must match or be one. Almost every confusing shape error traces back to misunderstanding this.
What it is really testing.
Whether you can state the rule rather than treating it as magic.
Q5
What is the difference between a view and a copy in NumPy?
Show the answer
Hide the answer
Slicing gives a view sharing memory; fancy indexing gives a copy.
Writing into a view modifies the original, which is efficient and occasionally surprising when you expected independence.
What it is really testing.
Whether you know slicing shares memory, which causes surprising mutations.
Q6
What is a DataFrame and what does it add over an array?
Show the answer
Hide the answer
A labelled table where columns can have different types and the index means something.
Joining, grouping, aligning and resampling are all about identity rather than position, and all are painful with bare arrays.
What it is really testing.
Whether you can say what labels buy beyond convenience.
Q7
What does groupby actually do?
Show the answer
Hide the answer
Splits rows into groups, applies a function per group, and combines the results.
Split-apply-combine covers a startling proportion of real analysis, because most questions a business asks have that shape.
What it is really testing.
Whether you recognise split-apply-combine as the shape of most analysis.
Q8
What is the most dangerous thing about joining tables?
Show the answer
Hide the answer
A join that multiplies rows, because the key is not unique on the side you assumed.
Three matching rows on each side become nine, every downstream total is inflated, and nothing raises an error.
What it is really testing.
Whether you have been caught by it. Nothing errors, which is the problem.
Q9
How do you guard against a bad join?
Show the answer
Hide the answer
Check row counts before and after, and validate key uniqueness on the side you believe is unique.
Modern tooling will validate the relationship if you ask, and asking costs one argument.
What it is really testing.
Whether you have a habit rather than an intention.
Q10
Why do rows disappear in a join?
Show the answer
Hide the answer
Keys that do not match - whitespace, case differences, or a type mismatch between text and number.
An inner join drops the unmatched rows silently, so you must check how many keys matched rather than whether the join ran.
What it is really testing.
Whether you check match rates rather than only whether the code ran.
Q11
Why is dropping missing values often wrong?
Show the answer
Hide the answer
Because why a value is missing usually matters, and missingness is rarely random.
If high earners decline to report income, dropping those rows biases every conclusion about income downward and nothing later recovers it.
What it is really testing.
Whether you ask why a value is missing before deciding what to do.
Q12
Why is filling missing values with the mean a poor default?
Show the answer
Hide the answer
It preserves the average while destroying the variance and inventing certainty.
An indicator column recording that the value was missing often carries more signal than any imputed number.
What it is really testing.
Whether you know it destroys variance and fabricates confidence.
Q13
What is the SettingWithCopyWarning telling you?
Show the answer
Hide the answer
That you may be writing to a copy rather than the original, so the write may be lost.
It arises from chained indexing. Using a single .loc assignment makes the intent unambiguous and the warning disappears.
What it is really testing.
Whether you understand chained indexing rather than silencing the warning.
Q14
What is the difference between loc and iloc?
Show the answer
Hide the answer
loc selects by label, iloc by integer position.
With a default integer index they look identical, which is exactly why code written against one breaks when the index changes.
What it is really testing.
Whether you know they diverge once the index is not the default.
Q15
Why are dates such a common source of bugs?
Show the answer
Hide the answer
Time zones, ambiguous formats and daylight saving all silently produce wrong aggregates.
A date written 03/04/2026 is two different days depending on convention, and a parser guessing per row can mix both in one column.
What it is really testing.
Whether you can name more than one failure mode.
Q16
How should you parse dates defensively?
Show the answer
Hide the answer
Specify the format explicitly rather than letting it be inferred.
Inference works until one row is ambiguous, and then it produces a dataset that is quietly wrong rather than an error.
What it is really testing.
Whether you specify formats rather than relying on inference.
Q17
What is the partial period problem?
Show the answer
Hide the answer
Comparing an unfinished period with completed ones, so the latest value always looks low.
It appears in an enormous number of dashboards without a caveat, and the apparent decline is an artefact of the calendar.
What it is really testing.
Whether you have spotted it in a real dashboard.
Q18
What is the cheapest way to reduce memory use?
Show the answer
Hide the answer
Downcast numeric columns and convert low-cardinality text to a categorical type.
Memory is usually the binding constraint before speed, and this is a few lines after loading with no change to any logic.
What it is really testing.
Whether you know memory usually binds before speed does.
Q19
Why is CSV a poor format for large data?
Show the answer
Hide the answer
It is row-oriented text with no types, so everything is parsed and nothing can be read selectively.
A columnar format stores types, compresses well, and lets you read only the columns you need.
What it is really testing.
Whether you can name what a columnar format gives you.
Q20
When should you reach for a distributed framework?
Show the answer
Hide the answer
After vectorising, fixing types and reading only what you need - and usually not before.
A great deal of distributed computing has been deployed on datasets that would have fitted in memory with better types.
What it is really testing.
Whether you exhaust the cheap options before reaching for a cluster.
Q21
What is the difference between apply and a vectorised operation?
Show the answer
Hide the answer
apply runs a Python function per row or element; a vectorised operation runs in compiled code.
apply is a loop wearing a method name. It is sometimes necessary and almost never the fast option.
What it is really testing.
Whether you recognise apply as a loop in disguise.
Q22
What is method chaining and why do people use it?
Show the answer
Hide the answer
Expressing a pipeline as a sequence of operations without intermediate variables.
It makes the order of transformations explicit, which matters because several of them are not commutative.
What it is really testing.
Whether you connect it to order-dependence rather than to style.
Q23
Which pipeline steps are order-dependent?
Show the answer
Hide the answer
Filtering, joining, deduplicating and aggregating all give different answers in different orders.
The average of ratios is not the ratio of averages, which is a common and consequential error when grouping.
What it is really testing.
Whether you can name a case where order changes the answer.
Q24
What is the difference between wide and long format?
Show the answer
Hide the answer
Wide has one column per variable; long has one row per observation with a variable column.
Most plotting and statistical tools expect long format, which is why melt and pivot are so frequently used.
What it is really testing.
Whether you know which tools expect which shape.
Q25
What is a pivot table doing?
Show the answer
Hide the answer
Reshaping with an aggregation - rows, columns and a function applied to each cell.
It is groupby with the result laid out as a grid, which is usually easier to read and harder to compute with.
What it is really testing.
Whether you can describe it as groupby plus layout.
Q26
Why plot before computing summary statistics?
Show the answer
Hide the answer
Because statistics hide shape - several famously different datasets share identical means and correlations.
Plotting reveals the outlier, the cluster, the bimodality and the day the sensor broke, none of which appear in a summary.
What it is really testing.
Whether you plot first as a habit rather than at the end.
Q27
What is the difference between exploratory and explanatory plotting?
Show the answer
Hide the answer
Exploratory is fast and ugly and for you; explanatory is polished and for someone else.
Conflating them wastes time in both directions - polishing throwaway charts and publishing ones nobody can read.
What it is really testing.
Whether you have different standards for each.
Q28
What is the reproducibility problem with notebooks?
Show the answer
Hide the answer
Cells can run in any order, so the saved state may not match a top-to-bottom execution.
A result depending on a cell you later edited is not reproducible by anyone, including you next month.
What it is really testing.
Whether you have been bitten by out-of-order execution.
Q29
How do you make a notebook trustworthy?
Show the answer
Hide the answer
Restart and run everything before trusting a result, and move stable code into imported modules.
Pinning library versions matters too, because numeric results can change between releases.
What it is really testing.
Whether you restart and rerun before trusting a number.
Q30
Why should raw data be immutable?
Show the answer
Hide the answer
So every transformation is code and the path from source to conclusion can be re-run.
Editing the source file by hand makes the analysis unreproducible and the edit undiscoverable.
What it is really testing.
Whether you treat the source as read-only on principle.
Q31
What is data leakage in a data science pipeline?
Show the answer
Hide the answer
Information from outside the training data influencing it - including scaling fitted on everything.
Splitting first and fitting every transformation on the training data only is the discipline that prevents most of it.
What it is really testing.
Whether you know scaling before splitting is leakage.
Q32
Why is survivorship bias so easy to walk into?
Show the answer
Hide the answer
Because the data you have is what survived some process, and that process is rarely neutral.
Analysing current customers to learn why customers stay excludes everyone who left, who are the informative group.
What it is really testing.
Whether you ask who is missing from the data.
Q33
What questions should you ask of a new dataset?
Show the answer
Hide the answer
Where it came from, who generated it, what each column means, and what is systematically absent.
An event only exists if somebody instrumented it, so an absence may mean it did not happen or that nobody tracked it.
What it is really testing.
Whether you interrogate provenance rather than accepting columns at face value.
Q34
Why is the mean so often misleading?
Show the answer
Hide the answer
Because most business distributions are skewed, so a few large values pull it away from typical.
The median describes a typical value and percentiles describe the tail. The average customer frequently does not exist.
What it is really testing.
Whether you know skew is the normal case in business data.
Q35
When do percentiles matter more than averages?
Show the answer
Hide the answer
Whenever the tail is what people experience - latency, response times, spend.
The 95th and 99th percentiles describe the experience people complain about; the average describes one nobody has.
What it is really testing.
Whether you reach for percentiles where the tail is the experience.
Q36
What does correlation not tell you?
Show the answer
Hide the answer
Which variable caused which, or whether a third variable caused both.
The honest options are an experiment, a natural experiment, controlling for named confounders, or declining to claim causation.
What it is really testing.
Whether you can name what evidence would distinguish the explanations.
Q37
What is Simpson's paradox?
Show the answer
Hide the answer
A trend appearing in every subgroup can reverse when the groups are combined.
It is why the first response to any aggregate movement should be to break it down by the dimensions that matter.
What it is really testing.
Whether you break totals down before interpreting a movement.
Q38
How should you handle outliers?
Show the answer
Hide the answer
Investigate before removing - decide whether they are errors, rare events or the thing you care about.
Removing them by a fixed rule discards fraud, failures and your most valuable customers along with the typos.
What it is really testing.
Whether you investigate before removing rather than applying a rule.
Q39
What is the difference between a data scientist and an analyst in practice?
Show the answer
Hide the answer
Largely emphasis - analysts answer questions about the past, scientists build things that predict.
Both spend most of their time on data quality and definitions rather than on methods, which surprises people entering the field.
What it is really testing.
Whether you can describe the overlap honestly rather than drawing a hard line.
Q40
What is the most important non-technical skill in this work?
Show the answer
Hide the answer
Asking what the question actually is before answering it.
The most expensive analysis is a correct answer to the wrong question - it looks finished, gets presented, and is discovered later.
What it is really testing.
Whether you restate the question before answering it.