Free course · Lesson 1 of 5
The Data Science Lifecycle
In this lesson you will
- Describe the data science life cycle
- Turn a vague request into a specific data question
Every data science project follows a standard lifecycle — a repeatable process that turns raw data into real-world insights. Understanding these phases is more important than any single tool, because it gives you a roadmap from question to decision.
- Data Collection: Gather data from surveys, APIs, CSV files, or databases. In South Sudan, this might mean combining NGO program reports, mobile money logs, or health clinic records.
- Data Cleaning: Handle missing values, remove duplicates, and fix inconsistencies. Real-world data is always messy — expect to spend 60-80% of your time here.
- Exploration (EDA): Use summary statistics and visualizations to find patterns, outliers, and relationships. This guides what questions to ask next.
- Modeling & Analysis: Apply statistical methods or machine learning to answer your question — whether that is forecasting, classification, or identifying trends.
- Deployment & Reporting: Share findings through dashboards, reports, or interactive tools. Stakeholders need clear, actionable insights — not raw code.
Practical Skill: Use Jupyter Notebooks to document every step of the lifecycle. Each cell becomes a record of your thinking — great for collaboration and reproducibility. Export final results to Tableau Public for interactive dashboards.
Python (Pandas simulation)
# Simulating the Data Science Lifecycle with a dictionary pipeline # You would normally load a real CSV with pd.read_csv() # Step 1 & 2: Collect & Clean raw_data = [ {"name": "Clinic A", "patients": 340, "staff": 5, "region": "Central"}, {"name": "Clinic B", "patients": 510, "staff": 8, "region": "Central"}, {"name": "Clinic C", "patients": None, "staff": 3, "region": "Equatoria"}, # missing value! {"name": "Clinic D", "patients": 180, "staff": 2, "region": "Equatoria"}, {"name": "Clinic E", "patients": 620, "staff": 10, "region": "Central"}, {"name": "Clinic F", "patients": 280, "staff": None, "region": "Upper Nile"}, # missing value! ] # Remove rows with missing data (simple cleaning) clean_data = [r for r in raw_data if r["patients"] and r["staff"]] print(f"Loaded {len(raw_data)} records, cleaned to {len(clean_data)}") # Step 3: Explore — calculate summary stats total_patients = sum(r["patients"] for r in clean_data) avg_patients = total_patients / len(clean_data) print(f"Total patients across clinics: {total_patients}") print(f"Average patients per clinic: {avg_patients:.0f}") # Step 4 & 5: Insight & Report print("\nInsight: Central region clinics see more patients on average.") print("Recommendation: Allocate more staff to Equatoria clinics to improve coverage.")
Practice exercise
Rewrite 'Tell us about our clinic patients' as a specific data question linked to a decision, and list the data you would need.
Key takeaways
- Start every analysis from a decision-linked question
- Cleaning and communication take as much effort as analysis
- An insight says what a result means for the decision
Free self-study lesson — no certificate. For the full instructor-led program, see registration options.