Inspect before cleaning
Load a small CSV and inspect column types, row counts, missing values and duplicate keys. Keep the original file unchanged. Record assumptions about dates, currency and units before converting values, because a successful conversion can still encode the wrong meaning.
Transform and join safely
Filter rows, derive columns and group data to answer a defined question. Before joining two tables, check key uniqueness and expected join cardinality. Compare row counts before and after the join to catch accidental multiplication of records.
Explain the result
Build a summary table and a chart that answer the original question. Label units, time periods and exclusions. Distinguish an observed association from a causal explanation, and disclose missing records that could change the interpretation.
Practice project
Analyze monthly orders using separate customers and transactions tables. Deliver a notebook, data dictionary, cleaning log and three business questions with answers. Add checks for missing order IDs, negative quantities and duplicate transactions. Re-run the notebook from a clean session to confirm reproducibility.
Data analysis lab: verify a join
Create a customers table with unique customer IDs and an orders table with repeated customer IDs. Join them and confirm that the number of order rows is preserved. Then deliberately duplicate a customer record and observe the inflated totals. Add a uniqueness check that fails before the merge. Present the original total, incorrect total and corrected total with an explanation. This exercise turns a common silent reporting error into an explicit test.
Check your progress
Keep your working files, test cases and notes together. Explain one design decision, demonstrate a failure case and list what you would improve next. These concrete outputs make it easier to identify the next skill to practice.