Business Analyst · pandas
Why Every Business Analyst Should Learn pandas in 2026
Quick summary — why business analysts should learn pandas
Every business analyst should learn pandas in 2026 because it lets you quickly check stakeholder claims against data, measure process steps and bottlenecks, size problems to support requirements, and turn weekly spreadsheet work into repeatable scripts. You only need a focused subset of pandas to get real value.
In this guide you will learn:
- Data checks — that test stakeholder claims.
- Process metrics — from event logs.
- Evidence for requirements — with code.
- A starter pandas kit — for BAs.
- Interview questions — on data skills for BAs.
SECTION 01Checking stakeholder claims with data
Business analysts hear many statements in workshops: 'most customers abandon the form', 'refunds take too long', 'this region has the most complaints'. Some are accurate, some are not. Checking them quickly with data helps you focus requirements on real problems. pandas reads exports from Excel, CSV files and databases, and answers these questions in a few lines, even on files too large to handle comfortably in a spreadsheet:
| Claim | Question to check | pandas approach | Outcome |
|---|---|---|---|
| Most orders are late | What share is late? | Boolean column, then mean | A clear percentage |
| Refunds take too long | How long do they take? | Date difference, then median | Typical refund time |
| One region complains most | Complaints per region and per order | groupby and ratio | Fair comparison |
| The data is complete | Missing or duplicate records? | isna, duplicated | Data you can trust |
import pandas as pd
orders = pd.DataFrame({
"order_id": [1, 2, 3, 4, 5, 6],
"region": ["North", "North", "South", "South", "East", "East"],
"promised": pd.to_datetime(["2026-11-01"] * 6),
"delivered": pd.to_datetime(["2026-11-01", "2026-11-03", "2026-11-01",
"2026-11-01", "2026-11-02", "2026-11-01"]),
})
orders["late"] = orders["delivered"] > orders["promised"]
print("overall late share:", round(orders["late"].mean() * 100), "%")
print(orders.groupby("region")["late"].mean().mul(100).round())
import pandas as pd
df = pd.read_excel("complaints_export.xlsx") # pip install openpyxl
print("rows:", len(df))
print("duplicate complaint IDs:", df["complaint_id"].duplicated().sum())
print("missing values per column:")
print(df.isna().sum()[df.isna().sum() > 0])
print("date range:", df["created_at"].min(), "to", df["created_at"].max())
SECTION 02Measuring processes and finding bottlenecks
Process improvement is central to business analysis. Many systems record events with timestamps: application received, documents checked, approved, completed. pandas can turn these event logs into step durations, show where cases wait longest and compare channels or teams. This gives your as-is process maps real numbers, and helps you prioritise which gaps to fix first:
| Process question | Data needed | pandas technique | BA output |
|---|---|---|---|
| How long does each step take? | Case ID, step, timestamp | pivot and date differences | Step duration table |
| Where do cases wait longest? | Step durations | median per step | Bottleneck identified |
| Does one channel perform worse? | Channel column | groupby channel | Channel comparison |
| How many cases skip steps? | Steps per case | count distinct steps | Process compliance view |
import pandas as pd
events = pd.DataFrame({
"case": ["A", "A", "A", "B", "B", "B"],
"step": ["received", "verified", "approved"] * 2,
"ts": pd.to_datetime(["2026-11-01 09:00", "2026-11-02 15:00", "2026-11-03 10:00",
"2026-11-01 11:00", "2026-11-01 16:00", "2026-11-04 12:00"]),
})
wide = events.pivot(index="case", columns="step", values="ts")
wide["verify_hours"] = (wide["verified"] - wide["received"]).dt.total_seconds() / 3600
wide["approve_hours"] = (wide["approved"] - wide["verified"]).dt.total_seconds() / 3600
print(wide[["verify_hours", "approve_hours"]])
print("median hours per step:")
print(wide[["verify_hours", "approve_hours"]].median())
import pandas as pd
cases = pd.DataFrame({
"channel": ["online", "online", "branch", "branch", "online", "branch"],
"total_hours": [20, 28, 60, 75, 24, 58],
})
summary = (cases.groupby("channel")["total_hours"]
.agg(["count", "median", "max"]))
print(summary)
# Use the median to describe typical cases; mention the max as a risk.
SECTION 03Evidence for requirements and repeatable analysis
Good requirements are prioritised by impact. pandas helps you size a problem, for example how many customers are affected or how much rework a manual step causes, so you can justify why a feature matters. It also makes recurring analysis repeatable: instead of rebuilding the same spreadsheet each week, you rerun a script on the new export. This saves time and reduces copy-paste errors:
| BA task | Without pandas | With pandas | Benefit |
|---|---|---|---|
| Size a problem | Rough estimate | Count affected cases precisely | Stronger business case |
| Prioritise backlog | Opinion-based | Rank issues by frequency or impact | Clear priorities |
| Weekly status report | Rebuild spreadsheet each week | Rerun a script on new data | Time saved, fewer errors |
| Check a fix worked | Anecdotes | Compare before and after | Evidence of value |
import pandas as pd
tickets = pd.DataFrame({
"issue": ["OTP not received", "Upload failed", "OTP not received",
"Wrong address", "Upload failed", "OTP not received"],
"minutes_to_resolve": [12, 30, 15, 8, 25, 10],
})
ranked = (tickets.groupby("issue")
.agg(tickets=("issue", "size"), total_minutes=("minutes_to_resolve", "sum"))
.sort_values("total_minutes", ascending=False))
print(ranked)
# Use this table to justify which requirement to prioritise first.
import sys
import pandas as pd
def weekly_report(path: str) -> None:
df = pd.read_csv(path, parse_dates=["created_at"])
last_week = df[df["created_at"] >= df["created_at"].max() - pd.Timedelta(days=7)]
summary = last_week.groupby("status").size().rename("cases")
summary.to_csv("weekly_summary.csv")
print(summary)
if __name__ == "__main__":
weekly_report(sys.argv[1] if len(sys.argv) > 1 else "cases.csv")
# Usage: python weekly_report.py cases.csv
SECTION 04Starter pandas kit for business analysts
You do not need all of pandas. Use these templates to learn the subset that BAs use most:
read_csv / read_excel load exports
head, shape, dtypes first look
isna().sum() missing values
duplicated() duplicate rows
to_datetime fix dates
str.strip / str.title clean text
filter with df[cond] select rows
groupby + agg summaries
value_counts frequencies
pivot / pivot_table reshape
merge join two exports
sort_values rank
date differences durations
to_csv / to_excel share results
Week 1 Install Python (or use a notebook), load Excel and CSV,
check missing values and duplicates
Week 2 Clean text and dates; filter and sort
Week 3 groupby, pivot tables, merge two exports
Week 4 Build one evidence notebook for a real process question
and a weekly report script
Question: ______________________________
Data: export name, date range, rows
Checks: duplicates, missing values, date range confirmed
Finding: ______________________________
Evidence: table or chart
Impact on requirements: which story or priority this supports
Caveats: what the data does not show
SECTION 05Tips for business analysts learning pandas
These habits help you get value from pandas quickly:
- Start with real exports — use data from your own work questions, with permission.
- Learn the core 15 — most BA tasks need only a small subset.
- Check data quality first — duplicates and missing values change conclusions.
- Pair with Excel — share results in formats stakeholders already use.
- Write findings in plain words — the code is for you; the insight is for them.
SECTION 06Interview Q&A — data skills for BAs
Q1How would you check whether a stakeholder's claim is true?
Agree what the claim means, find the relevant data, check its quality, measure the claim with a simple calculation and share the result neutrally.
Q2How do you find a bottleneck in a process?
Use event timestamps to calculate time between steps for each case, compare medians across steps and channels, and confirm with process owners.
Q3Why use pandas instead of Excel for some tasks?
For larger files, repeatable weekly analysis, combining several exports and keeping a clear, rerunnable record of each step.
Q4How do you prioritise requirements with data?
Size each problem by frequency, time lost or customers affected, combine with business value and effort, and present the ranking to stakeholders.
Q5How do you present data findings to non-technical stakeholders?
Lead with the finding in plain words, show one simple table or chart, explain the impact and note any caveats.
SECTION 07Test yourself — data skills for BAs quiz
Five questions. No sign-up.
0 / 5Pick an answer to see why it is right or wrong.
SECTION 08Frequently asked questions
Do business analysts need to learn Python?
Not always, but basic Python with pandas helps BAs check data, measure processes and automate repeated analysis. Many BA roles value data skills.
Is pandas hard to learn for business analysts?
The core operations BAs need are approachable, especially for people comfortable with Excel. A few weeks of regular practice is often enough to start.
What can a business analyst do with pandas?
Check data quality, test stakeholder claims, measure process step durations, combine exports, rank issues by impact and produce weekly summaries.
Should I learn SQL or pandas first as a BA?
SQL is often more widely requested. pandas is a strong addition for working with exports and repeatable analysis. Many BAs learn both.
Can pandas replace Excel for business analysts?
Not completely. Excel remains useful for sharing and quick work; pandas is better for larger, repeatable or multi-file analysis.
SECTION 09Related reads
Classroom & online · Noida
Add data skills to your BA toolkit
Our Business Analyst Training Course covers requirements, process mapping, SQL, Excel and data analysis through case studies and projects.
Talk to a counsellor for current fees- Requirements and process mapping
- SQL and Excel
- Data-backed case studies
- Weekday & weekend batches