Skip to content

Data Science Intern Interview Questions & Answers

40 questions for Data Science Intern interviews — 31 easy, 9 medium.

About the Data Science Intern role

A data science intern supports the team with data cleaning, exploratory analysis, dashboards and simple models under guidance. Interviews are mostly fundamentals: Python and Pandas basics, simple SQL queries, descriptive statistics, train-test splits, common metrics and a walkthrough of a college or personal project. Interviewers value clear thinking, honesty about what you do not know and evidence that you learn quickly.

Pandas data cleaning Basic SQL queries Descriptive statistics Data visualisation Project explanation
Solved for this roleStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
3 questions free Unlock the rest in seconds
01

What is NumPy broadcasting?

Save to ▾
Show answer
The rule that lets arrays of different shapes operate together by virtually stretching the smaller one, for example adding a scalar or a (3,) vector to a (4,3) matrix.
02

What is data augmentation?

Save to ▾
Show answer
Data augmentation creates new training examples by applying realistic changes to existing ones. For images this means flips, rotations, crops and brightness changes. For text it can mean synonym replacement, back-translation or random word dropping. For audio, adding noise or shifting pitch. It improves generalisation when data is limited. Changes must keep the label correct; flipping a digit 6 can turn it into a 9.
03

How do you handle missing values?

Save to ▾
Show answer
First understand why data is missing. Then drop rows or columns with too many nulls, impute with mean/median/mode or a model (KNN), add a 'was_missing' flag, and fit imputers on training data only.
04

What is a normal distribution?

Save to ▾
Show answer
A symmetric bell-shaped distribution defined by mean and standard deviation, where about 68%, 95% and 99.7% of values lie within 1, 2 and 3 standard deviations.
05

What is the difference between layer normalisation and batch normalisation?

Save to ▾
Show answer
Batch normalisation normalises each feature using the mean and variance across the batch, so it depends on batch size and behaves differently in training and inference. Layer normalisation normalises across the features of each single example, so it works with any batch size and with variable-length sequences. That is why transformers use layer norm, often in the pre-norm position, while CNNs traditionally use batch norm.
06

Write a Python function to flatten a nested list of any depth.

Save to ▾
Show answer
def flatten(items): out = [] for x in items: if isinstance(x, list): out.extend(flatten(x)) else: out.append(x) return out print(flatten([1, [2, [3, 4]], 5])) # [1, 2, 3, 4, 5]
07

Tell me about a time you found a data quality issue using SQL.

Save to ▾
Show answer
Situation: during my internship I was building a monthly sales report. Task: make sure numbers were correct before sharing. Action: I compared order counts per day and noticed one day had double the usual orders. A GROUP BY on order_id showed every order that day appeared twice because a load job had run twice. Result: I reported it, the data team removed duplicates and added a uniqueness check. Now I always validate row counts.
08

What are dataclasses in Python and why are they useful in data projects?

Save to ▾
Show answer
A dataclass, created with the @dataclass decorator, automatically generates __init__, __repr__ and __eq__ from annotated fields. It is a clean way to hold structured records such as a training config with learning rate, batch size and paths. Options like frozen=True make instances immutable, and default values reduce boilerplate. Compared with plain dictionaries, dataclasses give attribute access, type hints and clearer errors when a field is misspelled.
09

Explain p-value in simple words.

Save to ▾
Show answer
The probability of seeing a result at least this extreme if the null hypothesis were true. A small p-value (for example < 0.05) is evidence against the null hypothesis.
10

Write Python code to group a list of order dictionaries by city and sum the amounts without Pandas.

Save to ▾
Show answer
from collections import defaultdict orders = [ {'city': 'Pune', 'amount': 250}, {'city': 'Delhi', 'amount': 400}, {'city': 'Pune', 'amount': 150}, ] totals = defaultdict(float) for o in orders: totals[o['city']] += o['amount'] print(dict(totals)) # {'Pune': 400.0, 'Delhi': 400.0}
11

What is skewness?

Save to ▾
Show answer
A measure of asymmetry. Right-skewed data has a long tail on the right (mean greater than median); left-skewed is the opposite. Log transforms often reduce right skew.
12

You must forecast demand for a new product that has only three weeks of history. What do you do?

Save to ▾
Show answer
Three weeks is too little to learn seasonality, so borrow information. Find similar past launches by category, price band and channel, and use their early sales curves as analogues. A global model trained across many products, with product attributes as features, can also forecast a cold-start item. Combine this with planned marketing spend and business judgement, show a wide interval, and update the forecast weekly as real data arrives.
13

What is the difference between a Pandas Series and a DataFrame?

Save to ▾
Show answer
A Series is a one-dimensional labelled array: one column of values with an index. A DataFrame is a two-dimensional table made of several Series that share the same index, and each column can have its own dtype. Selecting one column, like df['price'], gives you a Series. Selecting with a list, like df[['price']], gives you a DataFrame. Many methods work on both, but the output shape is different.
14

What is the difference between a function and a method?

Save to ▾
Show answer
A method is a function that belongs to an object or class and receives the instance (self) as its first argument.
15

What is stationarity and why do many forecasting models need it?

Save to ▾
Show answer
A stationary series has a constant mean, constant variance and an autocorrelation structure that does not change over time. Classical models like ARMA assume stationarity because they learn fixed relationships between past and present values; if the mean keeps drifting, those relationships break. You usually make a series stationary by differencing to remove trend, seasonal differencing to remove seasonality, and a log transform to stabilise growing variance.
16

Your SQL result does not match the number on the official dashboard. How do you resolve it?

Save to ▾
Show answer
I would first align definitions: date range, time zone, filters like test users or cancelled orders, and whether the metric counts users or events. Then compare at a smaller grain, by day or by city, to find where the gap starts. I would read the dashboard's underlying query and check data refresh times. Once found, I would document the agreed definition so the same mismatch does not repeat.
17

What is conditional probability? Give an example.

Save to ▾
Show answer
Conditional probability is the chance of an event given that another event has happened, written P(A given B) = P(A and B) / P(B). Example: 10 percent of users buy, and 40 percent of users who add to cart buy. So P(buy given cart) is 0.4, much higher than the overall 0.1. It is the base of Bayes' theorem, Naive Bayes and many funnel analyses.
18

What is the difference between regression and classification?

Save to ▾
Show answer
Regression predicts continuous values such as price; classification predicts discrete categories such as spam or not spam.
19

What is correlation and why does it not imply causation?

Save to ▾
Show answer
Correlation measures linear association between variables (-1 to 1). A third factor, reverse causality or chance can create it, so causation needs controlled experiments.
20

Write Python code to decompose a monthly series into trend, seasonal and residual parts with STL.

Save to ▾
Show answer
import pandas as pd from statsmodels.tsa.seasonal import STL s = df.set_index('month')['sales'].asfreq('MS') res = STL(s, period=12, robust=True).fit() parts = pd.DataFrame({ 'trend': res.trend, 'seasonal': res.seasonal, 'resid': res.resid }) print(parts.tail()) res.plot()
21

Write SQL to pivot order counts by status into columns using CASE WHEN.

Save to ▾
Show answer
SELECT DATE_TRUNC('month', order_date) AS month, SUM(CASE WHEN status = 'delivered' THEN 1 ELSE 0 END) AS delivered, SUM(CASE WHEN status = 'cancelled' THEN 1 ELSE 0 END) AS cancelled, SUM(CASE WHEN status = 'returned' THEN 1 ELSE 0 END) AS returned FROM orders GROUP BY 1 ORDER BY 1;
22

What are lambda functions and where are they useful?

Save to ▾
Show answer
Small anonymous one-line functions, handy as arguments to sort, map, filter or Pandas apply.
23

What are type hints in Python and why do data teams use them?

Save to ▾
Show answer
Type hints annotate expected types, for example def clean(df: pd.DataFrame, cols: list[str]) -> pd.DataFrame. Python does not enforce them at runtime, but tools like mypy and IDEs use them to catch mistakes early and give better autocomplete. In data teams they make shared pipeline code easier to read and review. They matter most in production code and libraries, less in quick exploratory notebooks.
24

Tell me about a time you improved messy code written by someone else.

Save to ▾
Show answer
Situation: in my final-year project, a teammate's cleaning script was one 600-line notebook that took 20 minutes to run. Task: I needed to reuse it for new data. Action: I split it into small functions, added docstrings, replaced row loops with vectorised Pandas code and wrote a few checks for row counts. Result: run time fell to 2 minutes and the team could reuse the functions. I learned to refactor in small, tested steps.
25

Type I vs Type II error?

Save to ▾
Show answer
Type I = false positive (rejecting a true null), probability α. Type II = false negative (missing a real effect), probability β. Power = 1 − β.
26

How do you check whether a variable is normally distributed?

Save to ▾
Show answer
Start visually with a histogram and a Q-Q plot; points close to the straight line suggest normality. Check skewness and kurtosis values. Then use a formal test such as Shapiro-Wilk for small samples or Anderson-Darling. Remember that with very large samples, tests flag tiny harmless deviations, so judge by the plots too. If data is skewed, consider a log transform or a non-parametric method.
27

Pandas: find the top 3 products by revenue in each region.

Save to ▾
Show answer
(df.assign(rev=df.price * df.qty) .groupby(['region', 'product'])['rev'].sum() .reset_index() .sort_values('rev', ascending=False) .groupby('region').head(3))
28

What is a generator and when would you use one?

Save to ▾
Show answer
A function using yield that produces values lazily, one at a time. It saves memory when processing large files or streams because the full sequence is never held in RAM.
29

Pearson vs Spearman correlation?

Save to ▾
Show answer
Pearson measures linear relationships on continuous data; Spearman uses ranks, so it captures monotonic relationships and is less sensitive to outliers.
30

What is the difference between iterators and iterables in Python?

Save to ▾
Show answer
An iterable can produce an iterator (it has __iter__); an iterator has __next__ and remembers its position. A for-loop calls iter() on the iterable and then next() repeatedly.
31

Correlation vs covariance?

Save to ▾
Show answer
Covariance shows the direction of a relationship but depends on units. Correlation is covariance scaled to −1…+1, so it shows direction and strength and is unit-free.
32

What is the difference between ROW_NUMBER, RANK and DENSE_RANK?

Save to ▾
Show answer
All three number rows within a window ordered by some column. ROW_NUMBER gives unique numbers even for ties: 1, 2, 3. RANK gives tied rows the same rank and skips the next numbers: 1, 1, 3. DENSE_RANK gives ties the same rank without gaps: 1, 1, 2. Use ROW_NUMBER to pick exactly one row per group, and DENSE_RANK for questions like the second highest distinct salary.
33

What is the difference between mean, median and mode?

Save to ▾
Show answer
Mean is the average, median is the middle value after sorting and mode is the most frequent value. Median is more robust to outliers.
34

How do you remove duplicates from a DataFrame?

Save to ▾
Show answer
df.drop_duplicates(subset=[...], keep='first') removes repeated rows; use duplicated() first to inspect what will be dropped.
35

Write a function to calculate RMSE without any library.

Save to ▾
Show answer
def rmse(y, p): return (sum((a - b) ** 2 for a, b in zip(y, p)) / len(y)) ** 0.5
36

What is a CTE and what is a recursive CTE?

Save to ▾
Show answer
A CTE, common table expression, is a named temporary result defined with WITH and used in the query that follows. It breaks complex SQL into readable steps and can be referenced more than once. A recursive CTE refers to itself: an anchor query starts the result and a recursive part keeps adding rows until none are added. It is used for hierarchies like employee-manager chains or generating date series.
37

Difference between loc and iloc in Pandas?

Save to ▾
Show answer
loc selects by label (row and column names, inclusive of the end label); iloc selects by integer position (end-exclusive).
38

What is standard error and how is it different from standard deviation?

Save to ▾
Show answer
Standard deviation measures how spread out individual data points are. Standard error measures how much a sample statistic, usually the mean, would vary if you repeated the sampling. For the mean, SE = SD divided by the square root of n. So with more data the standard deviation stays roughly the same, but the standard error shrinks. Confidence intervals and t-tests are built on the standard error.
39

What is the difference between a one-tailed and a two-tailed test?

Save to ▾
Show answer
A two-tailed test checks for a difference in either direction, for example whether a new page changes conversion up or down. A one-tailed test checks only one direction, such as whether it increases conversion. One-tailed tests have more power for that direction but ignore harm in the other direction. In most product experiments a two-tailed test is the safer default unless the direction was fixed before seeing data.
40

What are window functions in SQL?

Save to ▾
Show answer
Window functions compute a value for each row using a set of related rows, without collapsing them like GROUP BY does. They use OVER with optional PARTITION BY and ORDER BY. Examples are ROW_NUMBER for ranking, SUM OVER for running totals, LAG and LEAD for previous and next values, and AVG over a frame for moving averages. They are central to data science SQL interviews.

Frequently asked questions

What does a Data Science Intern do?

A data science intern supports the team with data cleaning, exploratory analysis, dashboards and simple models under guidance. Interviews are mostly fundamentals: Python and Pandas basics, simple SQL queries, descriptive statistics, train-test splits, common metrics and a walkthrough of a college or personal project. Interviewers value clear thinking, honesty about what you do not know and evidence that you learn quickly.

Which skills are tested in a Data Science Intern interview?

Expect questions on Pandas data cleaning, Basic SQL queries, Descriptive statistics, Data visualisation, Project explanation. Most rounds also ask you to explain a project and solve one practical problem live.

How do I prepare for a Data Science Intern interview?

Revise Python for Data Science, SQL for Data Science, Statistics and Probability first using the topic sheets, practise the questions on this page aloud, then do one full mock interview to practise timing.