Concepts 🚀 Project 🧮 Labs
🧮 Labs / ML Advanced / EDA mindset — 8 questions that reveal what the data is hiding

EDA mindset — 8 questions that reveal what the data is hiding

Exploratory Data Analysis is not 'df.describe()'. It's a systematic investigation. 8 questions that uncover patterns, leaks, and ML-readiness.

script.py v3.1
Python output click Run to execute
Click "Run" to execute the code on the left.
The output will appear here.
🧠 How it works

EDA = Exploratory Data Analysis. It's NOT just df.describe(). 8 questions that uncover what the data is HIDING: Q1 MEANINGS — understand every column. Strip whitespace from names. Q2 DISTRIBUTIONS — is the min/max reasonable? Is it skewed? Q3 CONSTANTS/DUPLICATES — constant columns are useless. Duplicate columns waste space. Q4 CORRELATIONS — features that move together. >0.7 = high. One is redundant. Q5 TIME — is there a date column? Future data leaking into train = fake accuracy. Q6 LEAKS — the #1 ML bug. Features derived from the target (salary_per_year from salary). Will be perfect at training, fail in production. ALWAYS check for these. Q7 TARGET DISTRIBUTION — skewed target? Log-transform it. Q8 TARGET BY CATEGORY — does the target vary by category? If yes, the category is predictive. Senior data scientists spend HOURS on this. Freshers skip to model.fit(). That's why freshers' models fail in production.

✏️ Try these changes
  • Remove the leak column (df = df.drop(columns=['salary_per_year'])) before Q4
    → the leak won't show up in correlations
  • Add a constant column: df['constant_col'] = 42
    → Q3 will detect and flag it
  • Make salary highly skewed: df['salary'] = np.exp(df['salary'] / 20000)
    → Q7 will show high skew → log-transform needed
  • Add a duplicate column: df['age_dup'] = df['age']
    → Q3 will detect the duplicate