Python for Public Health Research Training Course

Duration 10 days 16 modules · 65 contact hours
Level Intermediate Certificate on completion
Who attends Public Health Analyst, Epidemiologist and others
Fee from USD 2,200 KSh 190,000 for Kenyan organisations
Where 52 cities + online See dates by city
Next start 16 Nov 2026 Course code SD-PH-057

Before you join: Participants should be comfortable working with spreadsheets and tabular datasets, including sorting, filtering, basic formulas and simple charts.

Dates & prices

Two start dates a month in every city, and live online on weekdays or weekends. Fees are per participant; classroom fees include tuition, materials, lunch and refreshments, and the certificate.

Suggest a date or city

Showing the next six months. Later dates, other cities and private deliveries for your team are available on request.

Course overview

Public health teams increasingly receive line lists, surveillance extracts, survey files, laboratory results and service-use records that exceed the limits of spreadsheets. The challenge is not only writing code: analysts must define denominators, detect data-quality failures, manage missingness, select defensible measures and communicate findings without overstating causality. Python provides a repeatable way to prepare, analyse and report these data while retaining an auditable record of each decision.

This course develops Python capability for applied public health research. Participants work with pandas data frames, structured data cleaning, epidemiological measures, statistical testing, regression models, survival analysis, time-series methods and spatial data. They learn to build reproducible analysis workflows, document assumptions, apply STROBE reporting principles and protect sensitive health information. Cases reflect work such as outbreak surveillance, immunisation coverage, non-communicable disease studies, hospital service evaluation and community health surveys.

Teaching combines focused technical briefings with instructor-led coding demonstrations, case analysis, peer review and structured application planning. Participants build analysis components from the first week, then extend them into a complete research workflow during the second week. They leave with a reusable Python research project structure, data-quality checks, analysis code, visual outputs and a concise technical report based on a public health dataset.

The course suits professionals who already work with health data and need a practical route from spreadsheet-based analysis to reproducible Python research. It is appropriate for staff in ministries of health, hospitals, research institutes, NGOs, insurers, universities and public health programmes.

What you will be able to do

  • Build reproducible Python workflows for importing, cleaning and documenting public health datasets
  • Calculate incidence, prevalence, mortality, risk and standardised epidemiological measures using Python
  • Apply missing-data assessment, validation rules and duplicate-record checks to health research data
  • Produce publication-ready tables, charts and maps for surveillance and population health reporting
  • Fit and interpret regression, survival and time-series models for public health research questions
  • Assess confounding, interaction, bias and model assumptions in observational health studies
  • Structure an auditable research project using notebooks, scripts, version control and data dictionaries
  • Present a complete Python-based public health analysis with methods, findings and limitations

Benefits of attending

For you

  • Produce repeatable analyses instead of manual spreadsheet transformations
  • Assess public health data quality before calculating programme indicators
  • Explain epidemiological results with documented assumptions and limitations
  • Create auditable code portfolios for research and analytics roles
  • Contribute Python-based evidence to surveillance and evaluation decisions

For your organisation

  • Reduce manual errors in recurring surveillance and reporting workflows
  • Improve traceability from raw health data to reported indicators
  • Strengthen quality assurance for surveys, registries and programme datasets
  • Shorten preparation time for routine epidemiological analyses and visual reporting
  • Increase internal capacity to review analytical methods and research outputs

Course modules

16 modules over 10 days

Participants can set up a controlled Python workspace and organise a public health analysis project.

  • Install Python, Conda environments, JupyterLab, and packages under controlled IT policies
  • Project folders separating raw data, processed data, code, outputs, and documentation
  • Jupyter notebooks, Markdown cells, kernels, and reproducible execution order
  • Python variables, objects, lists, dictionaries, loops, and conditional statements
  • Import CSV, Excel, JSON, and fixed-width public health data files
  • Data dictionaries linking variable names, labels, codes, units, and sources

Participants can inspect, select and reshape health datasets using pandas data frames.

  • pandas Series and DataFrames for participant, facility, and event records
  • Inspect dimensions, column types, unique values, and descriptive record counts
  • Select rows and columns using Boolean conditions, loc, and iloc
  • Create derived variables from dates, categories, numeric values, and text
  • Sort, rename, recode, and reorder variables without altering source files
  • Reshape wide and long data for repeated measurements and indicator reporting

Participants can apply documented checks to identify and correct common health data defects.

  • Missingness profiles by variable, facility, reporting period, and population group
  • Range checks for ages, dates, laboratory values, doses, and vital signs
  • Detect duplicate persons, visits, notifications, and specimen identification numbers
  • Standardise text fields, categorical codes, dates, and administrative location names
  • Cross-field validation between diagnosis, treatment, outcome, and follow-up dates
  • Cleaning logs recording transformations, exclusions, rationale, and unresolved anomalies

Participants can join and aggregate related health datasets while preserving analytical traceability.

  • Merge person, visit, laboratory, and facility files using documented keys
  • Assess match rates, unmatched records, duplicate keys, and join consequences
  • Concatenate monthly extracts while checking schema consistency and reporting completeness
  • Group records by age, sex, geography, service, and reporting period
  • Aggregate counts, means, medians, proportions, and denominators for indicators
  • Create analysis-ready datasets with explicit inclusion and exclusion criteria

Participants can calculate and interpret core descriptive and epidemiological measures in Python.

  • Person, place, and time summaries for descriptive epidemiological investigation
  • Calculate counts, proportions, rates, risks, prevalence, and incidence measures
  • Construct denominators from census, catchment, enrolment, and person-time data
  • Direct age standardisation using reference populations and age-specific rates
  • Compute case-fatality ratio, mortality rate, and standardised mortality ratio
  • Stratify measures by demographic factors, exposure groups, geography, and time

Participants can summarise public health data and quantify uncertainty using appropriate statistical methods.

  • Distributional summaries using mean, median, standard deviation, quantiles, and IQR
  • Visual checks for skewness, outliers, heaping, and implausible values
  • Confidence intervals for proportions, means, rates, risk ratios, and rate ratios
  • Bootstrap confidence intervals for statistics without straightforward parametric assumptions
  • Compare groups using t-tests, chi-square tests, Fisher's exact test, and Mann-Whitney tests
  • Distinguish statistical significance, practical importance, precision, and public health relevance

Participants can design clear charts that communicate patterns, uncertainty and comparisons responsibly.

  • Matplotlib and seaborn charts for distributions, groups, trends, and relationships
  • Epidemic curves showing onset dates, reporting delays, and outbreak progression
  • Rate charts using appropriate denominators, scales, labels, and uncertainty intervals
  • Small multiples comparing regions, facilities, age groups, and reporting periods
  • Colour choices supporting accessible interpretation and avoiding misleading categorical emphasis
  • Publication-ready figures with titles, captions, source notes, and consistent formatting

Participants can translate public health research questions into defensible analytical specifications.

  • PICO framing for intervention, exposure, outcome, comparator, and target population
  • Cross-sectional, cohort, case-control, ecological, and interrupted time-series study designs
  • Selection bias, information bias, recall bias, and misclassification mechanisms
  • Directed acyclic graphs for confounder identification and adjustment decisions
  • Define index dates, follow-up windows, censoring rules, and outcome ascertainment
  • Analysis plans linking research questions, variables, estimands, and model choices

Participants can fit and interpret regression models for common public health outcome types.

  • Linear regression assumptions, residual diagnostics, transformations, and interpretation limits
  • Logistic regression for binary outcomes, odds ratios, predicted probabilities, and confidence intervals
  • Poisson regression for counts with population offsets and incidence rate ratios
  • Negative binomial models for overdispersed surveillance and service-use counts
  • Confounding assessment through crude, adjusted, and stratified effect estimates
  • Interaction terms for effect modification by age, sex, exposure, or geography

Participants can evaluate model adequacy and report regression results transparently.

  • Check linearity, residual patterns, influential observations, and multicollinearity diagnostics
  • Variance inflation factors and correlation matrices for predictor screening
  • Assess logistic model calibration, discrimination, classification thresholds, and residuals
  • Compare nested models using likelihood ratio tests and information criteria
  • Generate adjusted predictions, marginal effects, and interpretable effect plots
  • Regression tables reporting estimates, intervals, reference groups, and sample exclusions

Participants can analyse time-to-event outcomes with censoring and follow-up information.

  • Define time origin, event date, censoring date, and observation periods
  • Kaplan-Meier curves for retention, treatment outcomes, mortality, and recovery
  • Log-rank tests comparing survival distributions across exposure and treatment groups
  • Cox proportional hazards models with hazard ratios and confidence intervals
  • Test proportional hazards assumptions using Schoenfeld residuals and visual diagnostics
  • Competing risks considerations for mortality, discharge, transfer, and treatment outcomes

Participants can prepare and interpret routine surveillance time series for public health action.

  • Aggregate weekly and monthly counts with complete reporting-period calendars
  • Seasonality, trend, anomalies, and reporting artefacts in routine surveillance data
  • Moving averages and seasonal decomposition for exploratory disease pattern analysis
  • Calculate baselines and thresholds for simple aberration detection methods
  • Interrupted time-series models for policy, campaign, and service-change evaluation
  • Interpret surveillance signals alongside case definitions, testing volume, and reporting delays

Participants can prepare geographic health data and create defensible area-level maps.

  • GeoPandas objects, coordinate reference systems, geometries, and attribute joins
  • Join case counts and denominators to administrative boundary datasets
  • Choropleth maps using rates, classification choices, and suppression rules
  • Point maps for facilities, cases, environmental exposures, and service locations
  • Spatial aggregation, geocoding limitations, boundary changes, and modifiable areal unit concerns
  • Map interpretation avoiding causal claims from area-level association patterns

Participants can create an auditable Python research workflow suitable for review and reuse.

  • Research project conventions for scripts, notebooks, parameters, outputs, and archived inputs
  • Git repositories, commits, branches, diffs, and meaningful commit messages
  • Requirements files recording Python versions and package dependencies
  • Functions reducing repeated code in data preparation and indicator calculations
  • Automated checks for expected columns, valid values, and output totals
  • README files documenting data access, workflow order, assumptions, and limitations

Participants can manage analytical work with appropriate privacy, governance and reporting controls.

  • Data minimisation, pseudonymisation, access controls, retention, and secure storage
  • Disclosure control for small cells, rare events, sensitive groups, and maps
  • Ethics approvals, data-sharing agreements, consent limitations, and secondary data use
  • STROBE reporting items for observational study methods, results, and limitations
  • Provenance records linking analytical outputs to authorised source data
  • Communicate uncertainty, bias, missingness, and generalisability without overstating conclusions

Participants can build, review and present a complete reproducible Python analysis addressing a public health research question.

  • Frame a decision-focused research question using available public health data
  • Build an auditable pipeline from source data through final analytical outputs
  • Apply cleaning rules, descriptive measures, visualisations, and appropriate statistical models
  • Document assumptions, missingness decisions, validation findings, and analytical limitations
  • Review code, tables, figures, and interpretations against STROBE reporting items
  • Present findings, recommendations, uncertainty, and next analytical steps to stakeholders

Exercises and examples are adapted to each cohort's sectors and roles.

What you take back to work

  1. Python public health research project template
  2. Health data-quality validation checklist
  3. Epidemiological indicator calculation library
  4. Regression and survival analysis notebook set
  5. STROBE-aligned research reporting checklist
  6. Capstone technical analysis report

Who should attend

  • Public Health Analyst — needs repeatable methods for surveillance, survey and programme data
  • Epidemiologist — wants Python methods for observational studies and routine data analysis
  • Health Research Officer — requires auditable workflows for study datasets and reporting
  • Monitoring and Evaluation Specialist — needs stronger analysis of programme coverage and outcomes
  • Clinical Research Coordinator — manages research data requiring consistent cleaning and documentation
  • Health Information Manager — prepares service and registry data for analytical use

Skills and tools covered

Health data wranglingEpidemiological analysisStatistical modellingData visualisationReproducible researchResearch reporting

Tools and standards

Python, pandas, JupyterLab, STROBE Statement

How the course runs

Training methodology

The course uses short instructor briefings followed by guided coding demonstrations and public health case work. Participants inspect realistic datasets, discuss analytical choices, build code in stages and review outputs against research questions. Group exercises focus on interpreting measures, diagnosing data problems and challenging conclusions. Simulations address decisions such as outbreak signals, coverage gaps and model selection. Each participant maintains an analysis project throughout the course, with instructor feedback and time to plan transfer to their own surveillance, research or programme-reporting work.

Requirements and prerequisites

Participants should be comfortable working with spreadsheets and tabular datasets, including sorting, filtering, basic formulas and simple charts. They should understand common public health terms such as numerator, denominator, prevalence, incidence and confidence interval. Prior experience with health surveys, surveillance systems, clinical records or programme monitoring data is helpful. No previous Python programming is required, and advanced mathematics, formal computer science training, database administration and prior command-line experience are not required. Participants should be willing to read code, troubleshoot errors and work with quantitative examples.

A typical training day

08:30 – 10:30First session
10:30 – 10:45Refreshment break
10:45 – 12:30Second session
12:30 – 13:30Lunch and networking
13:30 – 15:00Third session
15:00 – 15:15Refreshment break
15:15 – 16:30Workshop and daily review

Live online deliveries follow the same structure in East Africa Time, with shorter screen blocks and longer breaks.

What the fee includes

  • Instruction by a practitioner facilitator
  • Full course workbook and materials
  • Exercise files, templates and case studies
  • Refreshments and lunch on classroom deliveries
  • Certificate of completion
  • Post-course application plan

Frequently asked questions

No prior Python programming is required. You should be comfortable with spreadsheets, tabular data and basic public health measures such as rates, prevalence and confidence intervals.

Bring a laptop capable of running Python and JupyterLab; installation guidance is provided before the course. You may also bring a de-identified work problem or approved sample dataset, subject to your organisation's data-governance rules.

The course is designed for analysts, epidemiologists, researchers, monitoring specialists, health information staff and clinical research personnel. It is most useful for people moving from spreadsheet analysis to repeatable code-based research workflows.

The course uses public health questions, health data structures and epidemiological measures throughout. It addresses denominators, surveillance reporting, observational study design, research ethics, STROBE reporting and interpretation of health findings.

Participants can use the project structure and validation checks for surveillance extracts, service data, survey files and research datasets. The methods support recurring indicator reports, evaluation studies, outbreak summaries and analytical quality assurance.

Each training day runs from 08:30 to 16:30 and provides about 6.5 contact hours. The first week establishes data handling, epidemiology and visualisation, while the second week develops modelling, reproducibility, governance and the capstone analysis.

Questions about this course?

Ask about dates, fees, group bookings or running it for your team. Our training team replies by email.