āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Data Analyst āļ­āļīāļ•āļēāļĨāļĩ 2026: SQL, Python āđāļĨāļ° Analytics

30 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ data analyst āļŠāļģāļŦāļĢāļąāļšāļ­āļīāļ•āļēāļĨāļĩ 2026 Query SQL, Python pandas āđāļĨāļ° business analytics āļžāļĢāđ‰āļ­āļĄāļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Data Analyst āļ­āļīāļ•āļēāļĨāļĩ 2026

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ data analyst āđƒāļ™āļ­āļīāļ•āļēāļĨāļĩāļŠāļģāļŦāļĢāļąāļšāļ›āļĩ 2026 āđ€āļ™āđ‰āļ™āļŦāļ™āļąāļāđ„āļ›āļ—āļĩāđˆāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ”āđ‰āļēāļ™ SQL āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāļ”āđ‰āļ§āļĒ Python āđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāđāļ›āļĨāļ‡āļ›āļąāļāļŦāļēāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāđ€āļ›āđ‡āļ™āđ‚āļ‹āļĨāļđāļŠāļąāļ™āđ€āļŠāļīāļ‡āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ āļ”āđ‰āļ§āļĒāļ•āļģāđāļŦāļ™āđˆāļ‡āļ‡āļēāļ™āđ€āļ›āļīāļ”āļĢāļąāļšāļĄāļēāļāļāļ§āđˆāļē 600 āļ•āļģāđāļŦāļ™āđˆāļ‡āđƒāļ™āļĄāļīāļĨāļēāļ™ āđ‚āļĢāļĄ āđāļĨāļ°āđ‚āļšāđ‚āļĨāļāļāļē āļšāļĢāļīāļĐāļąāļ—āļ­āļĒāđˆāļēāļ‡ Prometeia, Bending Spoons āđāļĨāļ° ABB āļ„āļēāļ”āļŦāļ§āļąāļ‡āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāđāļŠāļ”āļ‡āļ—āļąāđ‰āļ‡āļ„āļ§āļēāļĄāļĨāļķāļāļ‹āļķāđ‰āļ‡āļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„āđāļĨāļ°āļ„āļ§āļēāļĄāđ€āļ‰āļĩāļĒāļšāđāļŦāļĨāļĄāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ

āļĨāļąāļāļĐāļ“āļ°āđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āļ•āļĨāļēāļ”āļ­āļīāļ•āļēāļĨāļĩ

āļ™āļēāļĒāļˆāđ‰āļēāļ‡āļŠāļēāļ§āļ­āļīāļ•āļēāļĨāļĩāđƒāļŦāđ‰āļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļāļāļąāļšāļ—āļąāļāļĐāļ° SQL āđāļĨāļ° Power BI āļ„āļ§āļēāļĄāļŠāļģāļ™āļēāļ Python āļāļąāļš pandas āļ—āļģāđƒāļŦāđ‰āļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāđ‚āļ”āļ”āđ€āļ”āđˆāļ™ āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ—āļĩāđˆāļšāļĢāļīāļĐāļąāļ—āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāđƒāļ™āļĄāļīāļĨāļēāļ™ āđ€āļ‡āļīāļ™āđ€āļ”āļ·āļ­āļ™āļĢāļ°āļ”āļąāļš entry-level āļ­āļĒāļđāđˆāļĢāļ°āļŦāļ§āđˆāļēāļ‡ â‚Ž28,000 āļ–āļķāļ‡ â‚Ž39,000 āļŠāđˆāļ§āļ™āļ•āļģāđāļŦāļ™āđˆāļ‡ senior āļŠāļēāļĄāļēāļĢāļ–āļ–āļķāļ‡ â‚Ž80,000+

āļ„āļģāļ–āļēāļĄ SQL āļ—āļĩāđˆāļ›āļĢāļēāļāļāđƒāļ™āļ—āļļāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Data Analyst

SQL āļĒāļąāļ‡āļ„āļ‡āđ€āļ›āđ‡āļ™āļžāļ·āđ‰āļ™āļāļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ data analyst āđƒāļ™āļ­āļīāļ•āļēāļĨāļĩ āļœāļđāđ‰āļˆāļąāļ”āļāļēāļĢāļāđˆāļēāļĒāļŠāļĢāļĢāļŦāļēāļ—āļĩāđˆāļšāļĢāļīāļĐāļąāļ—āļ­āļĒāđˆāļēāļ‡ Italgas āđāļĨāļ° Philip Morris āļ—āļ”āļŠāļ­āļšāļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāđ€āļāļĩāđˆāļĒāļ§āļāļąāļš JOIN, aggregation āđāļĨāļ° window function āļ„āļģāļ–āļēāļĄāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ›āļĢāļ°āđ€āļĄāļīāļ™āļ§āđˆāļēāļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāļŠāļēāļĄāļēāļĢāļ–āļ”āļķāļ‡ insight āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļˆāļēāļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļŠāļīāļ‡āļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāđ„āļ”āđ‰āļŦāļĢāļ·āļ­āđ„āļĄāđˆ

āļ„āļģāļ–āļēāļĄ 1: āļ­āļ˜āļīāļšāļēāļĒāļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ INNER JOIN āđāļĨāļ° LEFT JOIN āļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: INNER JOIN āļ„āļ·āļ™āļ„āđˆāļēāđ€āļ‰āļžāļēāļ°āđāļ–āļ§āļ—āļĩāđˆāļĄāļĩāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđƒāļ™āļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļ•āļēāļĢāļēāļ‡ LEFT JOIN āļ„āļ·āļ™āļ„āđˆāļēāđāļ–āļ§āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļˆāļēāļāļ•āļēāļĢāļēāļ‡āļ”āđ‰āļēāļ™āļ‹āđ‰āļēāļĒāļšāļ§āļāļāļąāļšāđāļ–āļ§āļ—āļĩāđˆāļˆāļąāļšāļ„āļđāđˆāļˆāļēāļāļ•āļēāļĢāļēāļ‡āļ”āđ‰āļēāļ™āļ‚āļ§āļē āđ‚āļ”āļĒāļĄāļĩāļ„āđˆāļē NULL āđƒāļ™āļ•āļģāđāļŦāļ™āđˆāļ‡āļ—āļĩāđˆāđ„āļĄāđˆāļĄāļĩāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆ

sql
-- orders_analysis.sql
-- Find all customers and their orders (including customers with no orders)
SELECT 
    c.customer_id,
    c.customer_name,
    o.order_id,
    o.order_total
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id;

-- Result: Customers without orders appear with NULL order_id and order_total
-- INNER JOIN would exclude those customers entirely

āļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļĄāļ­āļ‡āļŦāļēāļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāđƒāļˆāļ§āđˆāļēāļ„āđˆāļē NULL āļ›āļĢāļēāļāļāđ€āļĄāļ·āđˆāļ­āđƒāļ” āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ­āļ˜āļīāļšāļēāļĒāļšāļĢāļīāļšāļ—āļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļĨāļ·āļ­āļāļ›āļĢāļ°āđ€āļ āļ— join āļŦāļ™āļķāđˆāļ‡āđ€āļŦāļ™āļ·āļ­āļ­āļĩāļāļ›āļĢāļ°āđ€āļ āļ—āļŦāļ™āļķāđˆāļ‡

āļ„āļģāļ–āļēāļĄ 2: āđ€āļ‚āļĩāļĒāļ™ query āđ€āļžāļ·āđˆāļ­āļŦāļēāđ€āļ‡āļīāļ™āđ€āļ”āļ·āļ­āļ™āļŠāļđāļ‡āļŠāļļāļ”āļ­āļąāļ™āļ”āļąāļšāļŠāļ­āļ‡āđƒāļ™āļ•āļēāļĢāļēāļ‡

āļ„āļģāļ–āļēāļĄāļ™āļĩāđ‰āļ—āļ”āļŠāļ­āļšāļ„āļ§āļēāļĄāļĢāļđāđ‰āđ€āļāļĩāđˆāļĒāļ§āļāļąāļš subquery, DISTINCT āđāļĨāļ°āļāļēāļĢāļˆāļģāļāļąāļ”āļœāļĨāļĨāļąāļžāļ˜āđŒ āļĄāļĩāļŦāļĨāļēāļĒāļ§āļīāļ˜āļĩāļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡

sql
-- salary_analysis.sql
-- Approach 1: Using subquery with MAX
SELECT MAX(salary) AS second_highest
FROM employees
WHERE salary < (SELECT MAX(salary) FROM employees);

-- Approach 2: Using DENSE_RANK window function
SELECT salary AS second_highest
FROM (
    SELECT salary, DENSE_RANK() OVER (ORDER BY salary DESC) AS rank
    FROM employees
) ranked
WHERE rank = 2;

āļ§āļīāļ˜āļĩ window function āļˆāļąāļ”āļāļēāļĢāļāļąāļšāļāļēāļĢāđ€āļŠāļĄāļ­āļāļąāļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡ āļŦāļēāļāļžāļ™āļąāļāļ‡āļēāļ™āļŠāļēāļĄāļ„āļ™āđāļŠāļĢāđŒāđ€āļ‡āļīāļ™āđ€āļ”āļ·āļ­āļ™āļŠāļđāļ‡āļŠāļļāļ” DENSE_RANK āļĒāļąāļ‡āļ„āļ‡āļ„āļ·āļ™āļ„āđˆāļēāđ€āļ‡āļīāļ™āđ€āļ”āļ·āļ­āļ™āļŠāļđāļ‡āļŠāļļāļ”āļ­āļąāļ™āļ”āļąāļšāļŠāļ­āļ‡āļ—āļĩāđˆāđāļ—āđ‰āļˆāļĢāļīāļ‡ āļāļēāļĢāđƒāļŠāđ‰ ROW_NUMBER āļˆāļ°āļ„āļ·āļ™āļ„āđˆāļēāļœāļĨāļĨāļąāļžāļ˜āđŒāļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™ āļ‹āļķāđˆāļ‡āđāļŠāļ”āļ‡āļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆāđ€āļāļĩāđˆāļĒāļ§āļāļąāļš SQL window functions

āļ„āļģāļ–āļēāļĄ 3: āļ§āļīāļ˜āļĩāļāļēāļĢāļĢāļ°āļšāļļāđāļĨāļ°āļˆāļąāļ”āļāļēāļĢāļāļąāļšāļĢāļ°āđ€āļšāļĩāļĒāļ™āļ—āļĩāđˆāļ‹āđ‰āļģāļāļąāļ™?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: āđƒāļŠāđ‰ GROUP BY āļāļąāļš HAVING COUNT(*) > 1 āđ€āļžāļ·āđˆāļ­āļĢāļ°āļšāļļāļ„āļ§āļēāļĄāļ‹āđ‰āļģāļ‹āđ‰āļ­āļ™ āļ§āļīāļ˜āļĩāļāļēāļĢāļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļāļŽāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ: āđ€āļāđ‡āļšāļĢāļ°āđ€āļšāļĩāļĒāļ™āđāļĢāļ āļĢāļ°āđ€āļšāļĩāļĒāļ™āļĨāđˆāļēāļŠāļļāļ” āļŦāļĢāļ·āļ­āļĢāļ§āļĄāļ‚āđ‰āļ­āļĄāļđāļĨ

sql
-- duplicate_detection.sql
-- Find duplicate email addresses
SELECT email, COUNT(*) AS occurrence_count
FROM users
GROUP BY email
HAVING COUNT(*) > 1;

-- Keep only the earliest record for each email
DELETE FROM users
WHERE id NOT IN (
    SELECT MIN(id)
    FROM users
    GROUP BY email
);

āļ„āļģāļ–āļēāļĄ 4: āļ­āļ˜āļīāļšāļēāļĒ CTE āđāļĨāļ°āđ€āļĄāļ·āđˆāļ­āđƒāļ”āļ„āļ§āļĢāđƒāļŠāđ‰āđāļ—āļ™ subquery

Common Table Expressions āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļ­āđˆāļēāļ™ query āđāļĨāļ°āļ­āļ™āļļāļāļēāļ•āđƒāļŦāđ‰āļĄāļĩ query āđāļšāļš recursive āļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļŠāļēāļ§āļ­āļīāļ•āļēāļĨāļĩāļĄāļąāļāļ‚āļ­āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļĄāļąāļ„āļĢ refactor subquery āļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āđ€āļ›āđ‡āļ™ CTE

sql
-- revenue_analysis.sql
-- CTE for monthly revenue calculation
WITH monthly_revenue AS (
    SELECT 
        DATE_TRUNC('month', order_date) AS month,
        SUM(order_total) AS revenue
    FROM orders
    WHERE order_date >= '2025-01-01'
    GROUP BY DATE_TRUNC('month', order_date)
),
revenue_growth AS (
    SELECT 
        month,
        revenue,
        LAG(revenue) OVER (ORDER BY month) AS prev_month_revenue,
        revenue - LAG(revenue) OVER (ORDER BY month) AS growth
    FROM monthly_revenue
)
SELECT * FROM revenue_growth WHERE growth > 0;

CTE āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āļ‹āđ‰āļģāđ„āļ”āđ‰āļ āļēāļĒāđƒāļ™ query āđ€āļ”āļĩāļĒāļ§āļāļąāļ™ āļ•āđˆāļēāļ‡āļˆāļēāļ subquery āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļ—āļģāļ‹āđ‰āļģ āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āļŠāļīāđˆāļ‡āļŠāļģāļ„āļąāļāļŠāļģāļŦāļĢāļąāļš query āđ€āļŠāļīāļ‡āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āļ‹āļķāđˆāļ‡āļžāļšāđ„āļ”āđ‰āļ—āļąāđˆāļ§āđ„āļ›āđƒāļ™āļšāļ—āļšāļēāļ— data analyst

āļ„āļģāļ–āļēāļĄ 5: āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ WHERE āđāļĨāļ° HAVING āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: WHERE āļāļĢāļ­āļ‡āđāļ–āļ§āļāđˆāļ­āļ™ aggregation; HAVING āļāļĢāļ­āļ‡āļāļĨāļļāđˆāļĄāļŦāļĨāļąāļ‡ aggregation WHERE āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ aggregate āđ„āļ”āđ‰; HAVING āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‰

sql
-- sales_filter.sql
-- WHERE filters individual rows
SELECT region, SUM(sales) AS total_sales
FROM transactions
WHERE transaction_date >= '2026-01-01'  -- Filter rows first
GROUP BY region
HAVING SUM(sales) > 100000;              -- Then filter aggregated groups

āļžāļĢāđ‰āļ­āļĄāļ—āļĩāđˆāļˆāļ°āļžāļīāļŠāļīāļ•āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Data Analytics āđāļĨāđ‰āļ§āļŦāļĢāļ·āļ­āļĒāļąāļ‡āļ„āļĢāļąāļš?

āļāļķāļāļāļ™āļ”āđ‰āļ§āļĒāļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āđāļšāļšāđ‚āļ•āđ‰āļ•āļ­āļš, flashcards āđāļĨāļ°āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„āļ„āļĢāļąāļš

āļ„āļģāļ–āļēāļĄ Python āđāļĨāļ° Pandas āļŠāļģāļŦāļĢāļąāļšāļšāļ—āļšāļēāļ— Data Analyst

āļšāļĢāļīāļĐāļąāļ—āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāđƒāļ™āļĄāļīāļĨāļēāļ™ āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ° Bending Spoons āđāļĨāļ° Amazon Italy āļ„āļēāļ”āļŦāļ§āļąāļ‡āļ„āļ§āļēāļĄāļŠāļģāļ™āļēāļ Python āļ„āļģāļ–āļēāļĄāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ›āļĢāļ°āđ€āļĄāļīāļ™āļ—āļąāļāļĐāļ°āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāļ”āđ‰āļ§āļĒ pandas āđāļĨāļ° visualization āļžāļ·āđ‰āļ™āļāļēāļ™

āļ„āļģāļ–āļēāļĄ 6: āļ§āļīāļ˜āļĩāļˆāļąāļ”āļāļēāļĢāļ„āđˆāļēāļ—āļĩāđˆāļŦāļēāļĒāđ„āļ›āđƒāļ™ DataFrame pandas?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: āļ§āļīāļ˜āļĩāļāļēāļĢāļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļ›āļĢāļ°āđ€āļ āļ—āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļšāļĢāļīāļšāļ—āļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļĢāļ§āļĄāļ–āļķāļ‡āļāļēāļĢāļĨāļšāđāļ–āļ§ āļāļēāļĢāđ€āļ•āļīāļĄāļ”āđ‰āļ§āļĒ mean/median/mode āļāļēāļĢ forward-filling āļŠāļģāļŦāļĢāļąāļš time series āļŦāļĢāļ·āļ­āļāļēāļĢāđƒāļŠāđ‰ interpolation

python
# missing_values.py
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'date': pd.date_range('2026-01-01', periods=5),
    'sales': [100, np.nan, 150, np.nan, 200],
    'category': ['A', 'B', np.nan, 'A', 'B']
})

# Check missing values per column
print(df.isnull().sum())

# Fill numeric with median (robust to outliers)
df['sales'] = df['sales'].fillna(df['sales'].median())

# Fill categorical with mode
df['category'] = df['category'].fillna(df['category'].mode()[0])

# For time series: forward fill
df['sales_ffill'] = df['sales'].ffill()

āļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ›āļĢāļ°āđ€āļĄāļīāļ™āļ§āđˆāļēāļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāđ€āļ‚āđ‰āļēāđƒāļˆāļŦāļĢāļ·āļ­āđ„āļĄāđˆāļ§āđˆāļēāļāļēāļĢāļĨāļšāđāļ–āļ§āđāļšāļšāļŠāļļāđˆāļĄāļŠāļĩāđˆāļŠāļļāđˆāļĄāļŦāđ‰āļēāļˆāļ°āļŠāļđāļāđ€āļŠāļĩāļĒāļ‚āđ‰āļ­āļĄāļđāļĨ āđāļĨāļ°āļāļĨāļĒāļļāļ—āļ˜āđŒāļāļēāļĢāđ€āļ•āļīāļĄāļ•āđ‰āļ­āļ‡āļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļšāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāđ€āļŠāļīāļ‡āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ

āļ„āļģāļ–āļēāļĄ 7: āļ­āļ˜āļīāļšāļēāļĒāļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ merge, join āđāļĨāļ° concat āđƒāļ™ pandas

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: merge() āļĢāļ§āļĄ DataFrame āļšāļ™āļ„āļ­āļĨāļąāļĄāļ™āđŒāļŦāļĢāļ·āļ­ index (āđāļšāļš SQL join) join() āđ€āļ›āđ‡āļ™āļ§āļīāļ˜āļĩāļ—āļĩāđˆāļŠāļ°āļ”āļ§āļāļŠāļģāļŦāļĢāļąāļš join āđāļšāļš index-based concat() āļ‹āđ‰āļ­āļ™ DataFrame āđƒāļ™āđāļ™āļ§āļ•āļąāđ‰āļ‡āļŦāļĢāļ·āļ­āđāļ™āļ§āļ™āļ­āļ™āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡ matching

python
# dataframe_combining.py
import pandas as pd

orders = pd.DataFrame({'order_id': [1, 2], 'customer_id': [101, 102]})
customers = pd.DataFrame({'customer_id': [101, 103], 'name': ['Alice', 'Bob']})

# merge: SQL-style join on column
merged = pd.merge(orders, customers, on='customer_id', how='left')

# concat: stack DataFrames
df1 = pd.DataFrame({'A': [1, 2]})
df2 = pd.DataFrame({'A': [3, 4]})
stacked = pd.concat([df1, df2], ignore_index=True)

āļ„āļģāļ–āļēāļĄ 8: āļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļģ group-by operation āļāļąāļš multiple aggregation?

python
# groupby_aggregation.py
import pandas as pd

df = pd.DataFrame({
    'region': ['North', 'North', 'South', 'South'],
    'product': ['A', 'B', 'A', 'B'],
    'sales': [100, 150, 200, 50],
    'quantity': [10, 15, 20, 5]
})

# Multiple aggregations with named columns
result = df.groupby('region').agg(
    total_sales=('sales', 'sum'),
    avg_sales=('sales', 'mean'),
    total_quantity=('quantity', 'sum'),
    transaction_count=('sales', 'count')
).reset_index()

syntax āļ™āļĩāđ‰ (named aggregation) āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™āđƒāļ™ pandas 1.0+ āđāļĨāļ°āļĒāļąāļ‡āļ„āļ‡āđƒāļŠāđ‰āļ­āļĒāļđāđˆāđƒāļ™ pandas 3.0 āļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļēāļ”āļŦāļ§āļąāļ‡āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāđƒāļŠāđ‰āđāļ—āļ™āļ§āļīāļ˜āļĩāļāļēāļĢāđāļšāļš dict āļ—āļĩāđˆāđ€āļāđˆāļēāļāļ§āđˆāļē

āļ„āļģāļ–āļēāļĄ 9: āđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”āđ€āļžāļ·āđˆāļ­āļ„āļģāļ™āļ§āļ“āļ­āļąāļ•āļĢāļēāļāļēāļĢāđ€āļ•āļīāļšāđ‚āļ• month-over-month

python
# mom_growth.py
import pandas as pd

df = pd.DataFrame({
    'month': pd.date_range('2026-01-01', periods=6, freq='MS'),
    'revenue': [10000, 12000, 11500, 14000, 15500, 16000]
})

# Calculate percentage change
df['mom_growth'] = df['revenue'].pct_change() * 100

# Alternative: manual calculation for clarity
df['prev_revenue'] = df['revenue'].shift(1)
df['growth_manual'] = ((df['revenue'] - df['prev_revenue']) / df['prev_revenue']) * 100

āļ„āļģāļ–āļēāļĄ 10: āļ§āļīāļ˜āļĩāļāļēāļĢ pivot āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™ pandas?

python
# pivot_example.py
import pandas as pd

df = pd.DataFrame({
    'date': ['2026-01', '2026-01', '2026-02', '2026-02'],
    'region': ['North', 'South', 'North', 'South'],
    'sales': [100, 150, 120, 180]
})

# Pivot: rows=date, columns=region, values=sales
pivot_table = df.pivot(index='date', columns='region', values='sales')

# pivot_table for aggregation when duplicates exist
agg_pivot = pd.pivot_table(df, values='sales', index='date', 
                           columns='region', aggfunc='sum')

āļ„āļģāļ–āļēāļĄ Business Analytics āđāļĨāļ°āļāļēāļĢāđāļāđ‰āļ›āļąāļāļŦāļē

āļšāļĢāļīāļĐāļąāļ—āļ­āļīāļ•āļēāļĨāļĩ āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āđƒāļ™āļ”āđ‰āļēāļ™āļāļēāļĢāđ€āļ‡āļīāļ™ (Prometeia) āđāļĨāļ°āļāļēāļĢāļœāļĨāļīāļ• (ABB) āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ„āļīāļ”āđ€āļŠāļīāļ‡āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāļ™āļ­āļāđ€āļŦāļ™āļ·āļ­āļˆāļēāļāļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”āļĨāđ‰āļ§āļ™āđ† āļ„āļģāļ–āļēāļĄāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ›āļĢāļ°āđ€āļĄāļīāļ™āļ§āđˆāļēāļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāļāļģāļŦāļ™āļ”āļ›āļąāļāļŦāļēāđāļĨāļ°āļŠāļ·āđˆāļ­āļŠāļēāļĢāļœāļĨāļāļēāļĢāļ„āđ‰āļ™āļžāļšāļ­āļĒāđˆāļēāļ‡āđ„āļĢ

āļ„āļģāļ–āļēāļĄ 11: āļ§āļīāļ˜āļĩāļ§āļąāļ”āļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāđ‡āļˆāļ‚āļ­āļ‡āđāļ„āļĄāđ€āļ›āļāļāļēāļĢāļ•āļĨāļēāļ”?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: āļāļģāļŦāļ™āļ” KPI āļāđˆāļ­āļ™āļ—āļĩāđˆāđāļ„āļĄāđ€āļ›āļāļˆāļ°āđ€āļĢāļīāđˆāļĄ āđ€āļĄāļ•āļĢāļīāļāļ—āļąāđˆāļ§āđ„āļ›āđ„āļ”āđ‰āđāļāđˆ conversion rate, cost per acquisition (CPA), return on ad spend (ROAS) āđāļĨāļ° customer lifetime value (CLV) āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļāļąāļš control group āļŦāļĢāļ·āļ­ baseline āļ›āļĢāļ°āļ§āļąāļ•āļīāļĻāļēāļŠāļ•āļĢāđŒ

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāđāļ‚āđ‡āļ‡āđāļāļĢāđˆāļ‡āļĢāļ§āļĄāļ–āļķāļ‡:

  • āđ€āļĄāļ•āļĢāļīāļ baseline āļāđˆāļ­āļ™āđ€āļ›āļīāļ”āļ•āļąāļ§āđāļ„āļĄāđ€āļ›āļ
  • āļāļēāļĢāđ€āļĨāļ·āļ­āļ attribution model (first-touch, last-touch, multi-touch)
  • āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ™āļąāļĒāļŠāļģāļ„āļąāļāļ—āļēāļ‡āļŠāļ–āļīāļ•āļīāļŠāļģāļŦāļĢāļąāļšāļœāļĨāļĨāļąāļžāļ˜āđŒ
  • āļāļēāļĢāđāļšāđˆāļ‡āļāļĨāļļāđˆāļĄāļ•āļēāļĄāļŠāđˆāļ­āļ‡āļ—āļēāļ‡ āļāļĨāļļāđˆāļĄāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒ āļŦāļĢāļ·āļ­āļ āļđāļĄāļīāļĻāļēāļŠāļ•āļĢāđŒ

āļ„āļģāļ–āļēāļĄ 12: product manager āļĢāļēāļĒāļ‡āļēāļ™āļ§āđˆāļēāļĢāļēāļĒāđ„āļ”āđ‰āļĨāļ”āļĨāļ‡ 15% āđ€āļ”āļ·āļ­āļ™āļ™āļĩāđ‰ āļ§āļīāļ˜āļĩāļŠāļ·āļšāļŠāļ§āļ™?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: āđāļĒāļāļĒāđˆāļ­āļĒāļ›āļąāļāļŦāļēāļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļĢāļ°āļšāļš:

  1. āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āđ‰āļ­āļĄāļđāļĨ: āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ›āļąāļāļŦāļēāļ„āļļāļ“āļ āļēāļžāļ‚āđ‰āļ­āļĄāļđāļĨ āļĢāļ°āđ€āļšāļĩāļĒāļ™āļ—āļĩāđˆāļŦāļēāļĒāđ„āļ› āļŦāļĢāļ·āļ­āļ„āļ§āļēāļĄāļĨāđˆāļēāļŠāđ‰āļēāđƒāļ™āļāļēāļĢāļĢāļēāļĒāļ‡āļēāļ™
  2. āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāđāļšāđˆāļ‡āļāļĨāļļāđˆāļĄ: āđāļĒāļāļ•āļēāļĄāļœāļĨāļīāļ•āļ āļąāļ“āļ‘āđŒ āļ āļđāļĄāļīāļ āļēāļ„ āļāļĨāļļāđˆāļĄāļĨāļđāļāļ„āđ‰āļē āļŠāđˆāļ­āļ‡āļ—āļēāļ‡
  3. āđāļĒāļāļ•āļąāļ§āđāļ›āļĢ: āļāļģāļŦāļ™āļ”āļ§āđˆāļēāļ›āļĢāļīāļĄāļēāļ“āļĨāļ”āļĨāļ‡ āļĢāļēāļ„āļēāđ€āļ›āļĨāļĩāđˆāļĒāļ™ āļŦāļĢāļ·āļ­ mix āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡
  4. āļ›āļąāļˆāļˆāļąāļĒāļ āļēāļĒāļ™āļ­āļ: āļ•āļĢāļ§āļˆāļŠāļ­āļšāļĪāļ”āļđāļāļēāļĨ āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ‚āļ­āļ‡āļ„āļđāđˆāđāļ‚āđˆāļ‡ āđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļ—āļēāļ‡āđ€āļĻāļĢāļĐāļāļāļīāļˆ
  5. āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļāļąāļšāđ€āļĄāļ•āļĢāļīāļāļ­āļ·āđˆāļ™: traffic āđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒ, conversion rate, cart abandonment

āļ„āļģāļ–āļēāļĄ 13: āļ­āļ˜āļīāļšāļēāļĒ A/B testing āđāļĨāļ°āđ€āļĄāļ·āđˆāļ­āđƒāļ”āđ„āļĄāđˆāļ„āļ§āļĢāđƒāļŠāđ‰

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: A/B testing āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļŠāļ­āļ‡āļ•āļąāļ§āđāļ›āļĢ (control vs treatment) āđ€āļžāļ·āđˆāļ­āļ§āļąāļ”āļœāļĨāļāļĢāļ°āļ—āļšāđ€āļŠāļīāļ‡āļŠāļēāđ€āļŦāļ•āļļ āļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāļāļģāļŦāļ™āļ”āđāļšāļšāļŠāļļāđˆāļĄ āļ‚āļ™āļēāļ”āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ—āļĩāđˆāđ€āļžāļĩāļĒāļ‡āļžāļ­ āđāļĨāļ°āđ€āļĄāļ•āļĢāļīāļāđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļŠāļ™āđƒāļˆ

A/B testing āđ„āļĄāđˆāļ„āļ§āļĢāđƒāļŠāđ‰āđ€āļĄāļ·āđˆāļ­:

  • āļ‚āļ™āļēāļ”āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ„āļĄāđˆāđ€āļžāļĩāļĒāļ‡āļžāļ­āļŠāļģāļŦāļĢāļąāļšāļāļģāļĨāļąāļ‡āļ—āļēāļ‡āļŠāļ–āļīāļ•āļī
  • āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļŠāđˆāļ‡āļœāļĨāļāļĢāļ°āļ—āļšāļ•āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰āļ—āļļāļāļ„āļ™ (āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļžāļ·āđ‰āļ™āļāļēāļ™ āļĢāļēāļ„āļē)
  • āļĄāļĩ network effect (āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ—āļēāļ‡āļŠāļąāļ‡āļ„āļĄāļ—āļĩāđˆāļœāļđāđ‰āđƒāļŠāđ‰āļĄāļĩāļ­āļīāļ—āļ˜āļīāļžāļĨāļ•āđˆāļ­āļāļąāļ™)
  • āļ‚āđ‰āļ­āļāļąāļ‡āļ§āļĨāļ”āđ‰āļēāļ™āļˆāļĢāļīāļĒāļ˜āļĢāļĢāļĄāļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāļāļąāļāđ€āļāđ‡āļšāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒ

āļ„āļģāļ–āļēāļĄ 14: āļ§āļīāļ˜āļĩāļ­āļ˜āļīāļšāļēāļĒāļ™āļąāļĒāļŠāļģāļ„āļąāļāļ—āļēāļ‡āļŠāļ–āļīāļ•āļīāđƒāļŦāđ‰ stakeholder āļ—āļĩāđˆāđ„āļĄāđˆāđƒāļŠāđˆāļ™āļąāļāđ€āļ—āļ„āļ™āļīāļ„?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: āļ™āļąāļĒāļŠāļģāļ„āļąāļāļ—āļēāļ‡āļŠāļ–āļīāļ•āļīāļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļēāļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļ—āļĩāđˆāļŠāļąāļ‡āđ€āļāļ•āđ„āļ”āđ‰āđ„āļĄāđˆāļ™āđˆāļēāļˆāļ°āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ‚āļ”āļĒāļšāļąāļ‡āđ€āļ­āļīāļ P-value āļ•āđˆāļģāļāļ§āđˆāļē 0.05 āļšāđˆāļ‡āļŠāļĩāđ‰āļ§āđˆāļēāļĄāļĩāļ„āļ§āļēāļĄāļ™āđˆāļēāļˆāļ°āđ€āļ›āđ‡āļ™āļ™āđ‰āļ­āļĒāļāļ§āđˆāļē 5% āļ—āļĩāđˆāļœāļĨāļĨāļąāļžāļ˜āđŒāđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ‚āļ”āļĒāļŠāļļāđˆāļĄ

āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš: āđ‚āļĒāļ™āđ€āļŦāļĢāļĩāļĒāļ 10 āļ„āļĢāļąāđ‰āļ‡āđāļĨāļ°āđ„āļ”āđ‰āļŦāļąāļ§ 7 āļ„āļĢāļąāđ‰āļ‡āļ­āļēāļˆāđ€āļ›āđ‡āļ™āļšāļąāļ‡āđ€āļ­āļīāļ āļāļēāļĢāđ„āļ”āđ‰āļŦāļąāļ§ 95 āļ„āļĢāļąāđ‰āļ‡āļˆāļēāļ 100 āļ„āļĢāļąāđ‰āļ‡āļĄāļĩāļ™āļąāļĒāļŠāļģāļ„āļąāļāļ—āļēāļ‡āļŠāļ–āļīāļ•āļīāđ€āļžāļĢāļēāļ°āļšāļąāļ‡āđ€āļ­āļīāļāđ€āļžāļĩāļĒāļ‡āļ­āļĒāđˆāļēāļ‡āđ€āļ”āļĩāļĒāļ§āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļ­āļ˜āļīāļšāļēāļĒāđ„āļ”āđ‰

āļ„āļģāļ–āļēāļĄ 15: āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāđāļĨāļ°āļŠāļēāđ€āļŦāļ•āļļāļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļ§āļąāļ”āļ§āđˆāļēāļ•āļąāļ§āđāļ›āļĢāļŠāļ­āļ‡āļ•āļąāļ§āđ€āļ„āļĨāļ·āđˆāļ­āļ™āļ—āļĩāđˆāđ„āļ›āļ”āđ‰āļ§āļĒāļāļąāļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ āļŠāļēāđ€āļŦāļ•āļļāļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļēāļ•āļąāļ§āđāļ›āļĢāļŦāļ™āļķāđˆāļ‡āļŠāđˆāļ‡āļœāļĨāđ‚āļ”āļĒāļ•āļĢāļ‡āļ•āđˆāļ­āļ­āļĩāļāļ•āļąāļ§āļŦāļ™āļķāđˆāļ‡ āļĒāļ­āļ”āļ‚āļēāļĒāđ„āļ­āļĻāļāļĢāļĩāļĄāđāļĨāļ°āļāļēāļĢāļˆāļĄāļ™āđ‰āļģāđ€āļŠāļĩāļĒāļŠāļĩāļ§āļīāļ•āļĄāļĩāļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļāļąāļ™ (āļ—āļąāđ‰āļ‡āļ„āļđāđˆāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āđƒāļ™āļĪāļ”āļđāļĢāđ‰āļ­āļ™) āđāļ•āđˆāđ„āļ­āļĻāļāļĢāļĩāļĄāđ„āļĄāđˆāđ„āļ”āđ‰āļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ”āļāļēāļĢāļˆāļĄāļ™āđ‰āļģ

āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļŠāļēāđ€āļŦāļ•āļļāļ•āđ‰āļ­āļ‡āļāļēāļĢ:

  • āļĨāļģāļ”āļąāļšāļāđˆāļ­āļ™āļŦāļĨāļąāļ‡āļ—āļēāļ‡āđ€āļ§āļĨāļē (āļŠāļēāđ€āļŦāļ•āļļāļĄāļēāļāđˆāļ­āļ™āļœāļĨ)
  • āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒ
  • āļāļēāļĢāļāļģāļˆāļąāļ”āļ•āļąāļ§āđāļ›āļĢāļĢāļšāļāļ§āļ™ (āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļ„āļ§āļšāļ„āļļāļĄāđāļšāļšāļŠāļļāđˆāļĄ)

āļ„āļģāļ–āļēāļĄāļ›āļĢāļ°āđ€āļĄāļīāļ™āļ—āļąāļāļĐāļ°āļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„

āļ„āļģāļ–āļēāļĄāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ—āļ”āļŠāļ­āļšāļ„āļ§āļēāļĄāļŠāļģāļ™āļēāļāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđ€āļ‰āļžāļēāļ°āļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡āđƒāļ™āļ•āļĨāļēāļ”āļ­āļīāļ•āļēāļĨāļĩ

āļ„āļģāļ–āļēāļĄ 16: āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš Power BI āđāļĨāļ° Tableau āļŠāļģāļŦāļĢāļąāļš enterprise analytics

āļšāļĢāļīāļĐāļąāļ—āļ­āļīāļ•āļēāļĨāļĩ āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āđƒāļ™āļ āļēāļ„āļāļēāļĢāļ˜āļ™āļēāļ„āļēāļĢāđāļĨāļ°āļŠāļēāļ˜āļēāļĢāļ“āļđāļ›āđ‚āļ āļ„ āđƒāļŠāđ‰ Power BI āļĄāļēāļāđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļāļēāļĢāļĢāļ§āļĄāļĢāļ°āļšāļš Microsoft āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļŦāļĨāļąāļ:

āļ”āđ‰āļēāļ™Power BITableau
āļ•āđ‰āļ™āļ—āļļāļ™āļ•āđˆāļģāļāļ§āđˆāļē (āļĢāļ§āļĄ Office 365)āļ„āđˆāļēāļĨāļīāļ‚āļŠāļīāļ—āļ˜āļīāđŒāļŠāļđāļ‡āļāļ§āđˆāļē
āđ€āļŠāđ‰āļ™āđ‚āļ„āđ‰āļ‡āļāļēāļĢāđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āļ‡āđˆāļēāļĒāļāļ§āđˆāļēāļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āđƒāļŠāđ‰ ExcelāļŠāļąāļ™āļāļ§āđˆāļē āļĄāļĩāļžāļĨāļąāļ‡āļĄāļēāļāļāļ§āđˆāļē
āļāļēāļĢāđ€āļ•āļĢāļĩāļĒāļĄāļ‚āđ‰āļ­āļĄāļđāļĨPower Query āđƒāļ™āļ•āļąāļ§Prep āļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđāļĒāļ
Visualizationāļ”āļĩ āļāļģāļĨāļąāļ‡āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āļāļĨāļļāđˆāļĄ
āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļĢāļ°āļ”āļąāļšāļ­āļ‡āļ„āđŒāļāļĢāļŠāļđāļ‡āļāļ§āđˆāļēāđƒāļ™āļ­āļīāļ•āļēāļĨāļĩāļžāļšāđ„āļ”āđ‰āļ—āļąāđˆāļ§āđ„āļ›āđƒāļ™āļšāļĢāļīāļĐāļąāļ—āļ‚āđ‰āļēāļĄāļŠāļēāļ•āļī

āļ„āļģāļ–āļēāļĄ 17: DAX āļ„āļ·āļ­āļ­āļ°āđ„āļĢ āđāļĨāļ°āđƒāļŦāđ‰āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ measure

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: DAX (Data Analysis Expressions) āđ€āļ›āđ‡āļ™āļ āļēāļĐāļēāļŠāļđāļ•āļĢāļ‚āļ­āļ‡ Power BI āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ„āļģāļ™āļ§āļ“ Measure āļ„āļģāļ™āļ§āļ“āļ„āđˆāļēāđāļšāļšāđ„āļ”āļ™āļēāļĄāļīāļāļ•āļēāļĄ filter context

text
// Year-over-Year Growth measure in DAX
YoY Growth % = 
VAR CurrentYearSales = SUM(Sales[Amount])
VAR PreviousYearSales = CALCULATE(
    SUM(Sales[Amount]),
    DATEADD(Calendar[Date], -1, YEAR)
)
RETURN
DIVIDE(CurrentYearSales - PreviousYearSales, PreviousYearSales, 0)

āļ„āļģāļ–āļēāļĄ 18: āļ­āļ˜āļīāļšāļēāļĒ ETL āđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļāđƒāļ™ analytics

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: ETL āļĒāđˆāļ­āļĄāļēāļˆāļēāļ Extract, Transform, Load āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļĒāđ‰āļēāļĒāļˆāļēāļāļĢāļ°āļšāļšāļ•āđ‰āļ™āļ—āļēāļ‡ (ERP, CRM, web logs) āļœāđˆāļēāļ™āļāļēāļĢāđāļ›āļĨāļ‡ (āļāļēāļĢāļ—āļģāļ„āļ§āļēāļĄāļŠāļ°āļ­āļēāļ”, aggregation, joining) āđ€āļ‚āđ‰āļēāļŠāļđāđˆ data warehouse āđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ

āļ—āļēāļ‡āđ€āļĨāļ·āļ­āļāļŠāļĄāļąāļĒāđƒāļŦāļĄāđˆāļĢāļ§āļĄāļ–āļķāļ‡ ELT (āđ‚āļŦāļĨāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļ”āļīāļšāļāđˆāļ­āļ™ āđāļ›āļĨāļ‡āđƒāļ™ warehouse) āđāļĨāļ°āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđ€āļŠāđˆāļ™ dbt āļ—āļĩāđˆāđāļĒāļ transformation logic āļ­āļ­āļāļˆāļēāļ orchestration

āļ„āļģāļ–āļēāļĄ 19: āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļĢāļ°āļšāļš OLTP āđāļĨāļ° OLAP āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ”āđ‰āļēāļ™OLTPOLAP
āļ§āļąāļ•āļ–āļļāļ›āļĢāļ°āļŠāļ‡āļ„āđŒāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ˜āļļāļĢāļāļĢāļĢāļĄQuery āđ€āļŠāļīāļ‡āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ
Data modelNormalized (3NF)Denormalized (star/snowflake)
āļ›āļĢāļ°āđ€āļ āļ— queryāļ‡āđˆāļēāļĒ āļšāđˆāļ­āļĒāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ aggregate
āļ›āļĢāļīāļĄāļēāļ“āļ‚āđ‰āļ­āļĄāļđāļĨāļ•āđˆāļ­ queryāđ€āļĨāđ‡āļāđƒāļŦāļāđˆ
āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāļšāļąāļ™āļ—āļķāļāļ„āļģāļŠāļąāđˆāļ‡āļ‹āļ·āđ‰āļ­ āļ˜āļ™āļēāļ„āļēāļĢData warehouse āļĢāļēāļĒāļ‡āļēāļ™ BI

āļ„āļģāļ–āļēāļĄ 20: āļ§āļīāļ˜āļĩāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž SQL query āļ—āļĩāđˆāļŠāđ‰āļē?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: āļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāđāļ™āļ§āļ—āļēāļ‡āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļĢāļ°āļšāļš:

  1. āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ execution plan: āļĢāļ°āļšāļļ full table scan, index āļ—āļĩāđˆāļŦāļēāļĒāđ„āļ›
  2. āđ€āļžāļīāđˆāļĄ index āļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ: āļšāļ™āļ„āļ­āļĨāļąāļĄāļ™āđŒāđƒāļ™ WHERE, JOIN, ORDER BY
  3. āđ€āļ‚āļĩāļĒāļ™ pattern āļ—āļĩāđˆāđ„āļĄāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđƒāļŦāļĄāđˆ: āđāļ—āļ™āļ—āļĩāđˆ correlated subquery āļ”āđ‰āļ§āļĒ JOIN
  4. āļˆāļģāļāļąāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāđāļ•āđˆāđ€āļ™āļīāđˆāļ™āđ†: āļāļĢāļ­āļ‡āļāđˆāļ­āļ™ join āļ•āļēāļĢāļēāļ‡āđƒāļŦāļāđˆ
  5. āđƒāļŠāđ‰ query hints āļ­āļĒāđˆāļēāļ‡āļ›āļĢāļ°āļŦāļĒāļąāļ”: āđ€āļ‰āļžāļēāļ°āđ€āļĄāļ·āđˆāļ­ optimizer āđ€āļĨāļ·āļ­āļāđ„āļĄāđˆāļ”āļĩ
sql
-- query_optimization.sql
-- Before: correlated subquery (slow)
SELECT * FROM orders o
WHERE o.total > (SELECT AVG(total) FROM orders WHERE customer_id = o.customer_id);

-- After: window function (faster)
SELECT * FROM (
    SELECT *, AVG(total) OVER (PARTITION BY customer_id) AS avg_total
    FROM orders
) sub
WHERE total > avg_total;

āļžāļĢāđ‰āļ­āļĄāļ—āļĩāđˆāļˆāļ°āļžāļīāļŠāļīāļ•āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Data Analytics āđāļĨāđ‰āļ§āļŦāļĢāļ·āļ­āļĒāļąāļ‡āļ„āļĢāļąāļš?

āļāļķāļāļāļ™āļ”āđ‰āļ§āļĒāļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āđāļšāļšāđ‚āļ•āđ‰āļ•āļ­āļš, flashcards āđāļĨāļ°āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„āļ„āļĢāļąāļš

āļ„āļģāļ–āļēāļĄāļžāļĪāļ•āļīāļāļĢāļĢāļĄāđāļĨāļ°āļ•āļēāļĄāļŠāļ–āļēāļ™āļāļēāļĢāļ“āđŒ

āļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļŠāļēāļ§āļ­āļīāļ•āļēāļĨāļĩāļ›āļĢāļ°āđ€āļĄāļīāļ™āļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāļāļąāļ™āđ„āļ”āđ‰āļ—āļēāļ‡āļ§āļąāļ’āļ™āļ˜āļĢāļĢāļĄāđāļĨāļ°āļ—āļąāļāļĐāļ°āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ„āļ§āļšāļ„āļđāđˆāđ„āļ›āļāļąāļšāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„

āļ„āļģāļ–āļēāļĄ 21: āļ­āļ˜āļīāļšāļēāļĒāļ„āļĢāļąāđ‰āļ‡āļ—āļĩāđˆāļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāļ‚āļ­āļ‡āļ„āļļāļ“āļ‚āļąāļ”āđāļĒāđ‰āļ‡āļāļąāļšāļŠāļīāđˆāļ‡āļ—āļĩāđˆ stakeholder āļ„āļēāļ”āļŦāļ§āļąāļ‡

āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāđāļ‚āđ‡āļ‡āđāļāļĢāđˆāļ‡:

  • āļŠāļ–āļēāļ™āļāļēāļĢāļ“āđŒ: stakeholder āđ€āļŠāļ·āđˆāļ­āļ­āļ°āđ„āļĢ
  • āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ: āļ‚āđ‰āļ­āļĄāļđāļĨāđāļŠāļ”āļ‡āļ­āļ°āđ„āļĢāļˆāļĢāļīāļ‡āđ†
  • āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ: āļœāļĨāļāļēāļĢāļ„āđ‰āļ™āļžāļšāļ–āļđāļāļ™āļģāđ€āļŠāļ™āļ­āļ­āļĒāđˆāļēāļ‡āļĄāļĩāļāļēāļĢāļ—āļđāļ•āļ­āļĒāđˆāļēāļ‡āđ„āļĢ
  • āļœāļĨāļĨāļąāļžāļ˜āđŒ: āļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļ­āļ°āđ„āļĢāļ–āļđāļāļ—āļģāđāļĨāļ°āļœāļĨāļāļĢāļ°āļ—āļš

āļžāļĪāļ•āļīāļāļĢāļĢāļĄāļŦāļĨāļąāļāļ—āļĩāđˆāļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļĄāļ­āļ‡āļŦāļē: āļ„āļ§āļēāļĄāļ‹āļ·āđˆāļ­āļŠāļąāļ•āļĒāđŒāļ—āļēāļ‡āļ›āļąāļāļāļē āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ­āļĒāđˆāļēāļ‡āļĄāļĩāļāļēāļĢāļ—āļđāļ• āđāļĨāļ°āļāļēāļĢāļĒāļ·āļ™āļŦāļĒāļąāļ”āđƒāļ™āļ‚āđ‰āļ­āļŠāļĢāļļāļ›āļ—āļĩāđˆāļ‚āļąāļšāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļ”āđ‰āļ§āļĒāļ‚āđ‰āļ­āļĄāļđāļĨ

āļ„āļģāļ–āļēāļĄ 22: āļ§āļīāļ˜āļĩāļˆāļąāļ”āļĨāļģāļ”āļąāļšāļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļāļ‚āļ­āļ‡āļ„āļģāļ‚āļ­āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĢāđˆāļ‡āļ”āđˆāļ§āļ™āļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢ?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡:

  • āļ›āļĢāļ°āđ€āļĄāļīāļ™āļœāļĨāļāļĢāļ°āļ—āļšāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ°āļ„āļģāļ‚āļ­
  • āļŠāļĩāđ‰āđāļˆāļ‡āļāļģāļŦāļ™āļ”āđ€āļ§āļĨāļēāđāļĨāļ°āđ€āļˆāļĢāļˆāļēāđ€āļĄāļ·āđˆāļ­āđ€āļ›āđ‡āļ™āđ„āļ›āđ„āļ”āđ‰
  • āļĢāļ°āļšāļļ quick wins vs āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāđ€āļŠāļīāļ‡āļĨāļķāļ
  • āļŠāļ·āđˆāļ­āļŠāļēāļĢ timeline āļ—āļĩāđˆāļŠāļĄāļˆāļĢāļīāļ‡āļ­āļĒāđˆāļēāļ‡āļāļĢāļ°āļ•āļ·āļ­āļĢāļ·āļ­āļĢāđ‰āļ™
  • āļĒāļāļĢāļ°āļ”āļąāļšāļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āļ—āļĢāļąāļžāļĒāļēāļāļĢāļ•āđˆāļ­āļāđˆāļēāļĒāļšāļĢāļīāļŦāļēāļĢ

āļ„āļģāļ–āļēāļĄ 23: āļ§āļīāļ˜āļĩāļĢāļąāļšāļĢāļ­āļ‡āļ„āļļāļ“āļ āļēāļžāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡:

  • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ•āđ‰āļ™āļ—āļēāļ‡āļāđˆāļ­āļ™āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ (null check, range check, referential integrity)
  • āļšāļąāļ™āļ—āļķāļāļŠāļĄāļĄāļ•āļīāļāļēāļ™āļ­āļĒāđˆāļēāļ‡āļŠāļąāļ”āđ€āļˆāļ™
  • Cross-reference āļŦāļĨāļēāļĒāđāļŦāļĨāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ
  • āđƒāļŠāđ‰āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļļāļ“āļ āļēāļžāļ‚āđ‰āļ­āļĄāļđāļĨāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī
  • āļ•āļĢāļ§āļˆāļŠāļ­āļš outlier āļ”āđ‰āļ§āļĒāļ•āļ™āđ€āļ­āļ‡āļāđˆāļ­āļ™āļĒāļāđ€āļ§āđ‰āļ™

āļ„āļģāļ–āļēāļĄ 24: āļ­āļ˜āļīāļšāļēāļĒāđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļŦāļĢāļ·āļ­āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāđƒāļŦāļĄāđˆ

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡:

  • āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ”āđ‰āļ§āļĒāđ€āļ­āļāļŠāļēāļĢāļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢāđāļĨāļ° tutorial
  • āļŠāļĢāđ‰āļēāļ‡āđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāđ€āļĨāđ‡āļāđ† āđ€āļžāļ·āđˆāļ­āđƒāļŠāđ‰āđāļ™āļ§āļ„āļīāļ”
  • āđ€āļ‚āđ‰āļēāļĢāđˆāļ§āļĄāļŠāļļāļĄāļŠāļ™ (Reddit, Stack Overflow, meetup āļ—āđ‰āļ­āļ‡āļ–āļīāđˆāļ™)
  • āļŠāļ­āļ™āļœāļđāđ‰āļ­āļ·āđˆāļ™āđ€āļžāļ·āđˆāļ­āđ€āļŠāļĢāļīāļĄāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆ

āļ„āļģāļ–āļēāļĄāđ€āļ‰āļžāļēāļ°āļ­āļļāļ•āļŠāļēāļŦāļāļĢāļĢāļĄāļŠāļģāļŦāļĢāļąāļšāļ•āļĨāļēāļ”āļ­āļīāļ•āļēāļĨāļĩ

āļ„āļģāļ–āļēāļĄ 25: āļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļšāļ­āļ°āđ„āļĢāļ—āļĩāđˆāļŠāđˆāļ‡āļœāļĨāļāļĢāļ°āļ—āļšāļ•āđˆāļ­ data analytics āđƒāļ™āļ­āļīāļ•āļēāļĨāļĩ?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡: GDPR āđ€āļ›āđ‡āļ™āļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļšāļŦāļĨāļąāļ āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āļŦāļĨāļąāļāļĢāļ§āļĄāļ–āļķāļ‡:

  • āļ„āļ§āļēāļĄāļĒāļīāļ™āļĒāļ­āļĄāļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āđ‰āļ­āļĄāļđāļĨāļŠāđˆāļ§āļ™āļšāļļāļ„āļ„āļĨ
  • āļŠāļīāļ—āļ˜āļīāđŒāđƒāļ™āļāļēāļĢāļĨāļš (āļ„āļģāļ‚āļ­āļĨāļšāļ‚āđ‰āļ­āļĄāļđāļĨ)
  • āļāļēāļĢāļĨāļ”āļ‚āđ‰āļ­āļĄāļđāļĨ (āļĢāļ§āļšāļĢāļ§āļĄāđ€āļ‰āļžāļēāļ°āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™)
  • āļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™āļœāļĨāļāļĢāļ°āļ—āļšāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđ€āļŠāļĩāđˆāļĒāļ‡āļŠāļđāļ‡

āđ€āļ‰āļžāļēāļ°āļ āļēāļ„: āļāļēāļĢāļ˜āļ™āļēāļ„āļēāļĢāļ­āļīāļ•āļēāļĨāļĩ (āļ‚āđ‰āļ­āļšāļąāļ‡āļ„āļąāļš Bank of Italy), āļŠāļēāļ˜āļēāļĢāļ“āļŠāļļāļ‚ (āļāļŽāļŦāļĄāļēāļĒāļ­āļīāļ•āļēāļĨāļĩāļ—āļĩāđˆāđ€āļ—āļĩāļĒāļšāđ€āļ—āđˆāļē HIPAA), āļ āļēāļ„āļĢāļąāļ (āđāļ™āļ§āļ—āļēāļ‡ CAD āđāļĨāļ° AGID)

āļ„āļģāļ–āļēāļĄ 26: āļ§āļīāļ˜āļĩāļˆāļąāļ”āļāļēāļĢ PII āđƒāļ™ dataset āđ€āļŠāļīāļ‡āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡:

  • Pseudonymization: āđāļ—āļ™āļ—āļĩāđˆ identifier āļ”āđ‰āļ§āļĒ token
  • Aggregation: āļĢāļēāļĒāļ‡āļēāļ™āļ—āļĩāđˆāļĢāļ°āļ”āļąāļšāļāļĨāļļāđˆāļĄ āđ„āļĄāđˆāđƒāļŠāđˆāļĢāļēāļĒāļšāļļāļ„āļ„āļĨ
  • Data masking: āļ‹āđˆāļ­āļ™āļŠāđˆāļ§āļ™āļ—āļĩāđˆāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ­āđˆāļ­āļ™ (email: a***@gmail.com)
  • āļāļēāļĢāļ„āļ§āļšāļ„āļļāļĄāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡: āļŠāļīāļ—āļ˜āļīāđŒāļ•āļēāļĄāļšāļ—āļšāļēāļ—āļŠāļģāļŦāļĢāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ­āđˆāļ­āļ™
  • āļ™āđ‚āļĒāļšāļēāļĒāļāļēāļĢāđ€āļāđ‡āļšāļĢāļąāļāļĐāļē: āļĨāļšāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļĄāļ·āđˆāļ­āđ„āļĄāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļ­āļĩāļāļ•āđˆāļ­āđ„āļ›

āļ„āļģāļ–āļēāļĄ 27: āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļāļąāļšāđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ‚āđ‰āļ­āļĄāļđāļĨ cloud?

āļšāļĢāļīāļĐāļąāļ—āļ­āļīāļ•āļēāļĨāļĩāđƒāļŠāđ‰āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄ cloud āļĄāļēāļāļ‚āļķāđ‰āļ™ āļžāļšāđ„āļ”āđ‰āļ—āļąāđˆāļ§āđ„āļ›āđƒāļ™āļ•āļĨāļēāļ”:

  • Google BigQuery (Google Cloud)
  • Amazon Redshift (AWS)
  • Azure Synapse (āļāļēāļĢāļĢāļ§āļĄāļĢāļ°āļšāļš Microsoft)
  • Snowflake (cloud-agnostic)

āļ„āļģāļ–āļēāļĄ 28: āļ§āļīāļ˜āļĩāļŠāļ·āđˆāļ­āļŠāļēāļĢāļœāļĨāļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāđƒāļŦāđ‰āļœāļđāđ‰āļšāļĢāļīāļŦāļēāļĢ?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡:

  • āļ™āļģāļ”āđ‰āļ§āļĒāļ„āļģāđāļ™āļ°āļ™āļģ āđ„āļĄāđˆāđƒāļŠāđˆāļ§āļīāļ˜āļĩāļāļēāļĢ
  • āđƒāļŠāđ‰ visualization āļ—āļĩāđˆāļœāļđāđ‰āļšāļĢāļīāļŦāļēāļĢāļŠāļēāļĄāļēāļĢāļ–āļ•āļĩāļ„āļ§āļēāļĄāđ„āļ”āđ‰āđƒāļ™āđ„āļĄāđˆāļāļĩāđˆāļ§āļīāļ™āļēāļ—āļĩ
  • āļĢāļ°āļšāļļāļœāļĨāļāļĢāļ°āļ—āļšāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļĨāļ‚ (āļĢāļēāļĒāđ„āļ”āđ‰ āļ•āđ‰āļ™āļ—āļļāļ™ āļ„āļ§āļēāļĄāđ€āļŠāļĩāđˆāļĒāļ‡)
  • āļ„āļēāļ”āļāļēāļĢāļ“āđŒāļ„āļģāļ–āļēāļĄāđāļĨāļ°āđ€āļ•āļĢāļĩāļĒāļĄāļŠāđ„āļĨāļ”āđŒāļŠāļģāļĢāļ­āļ‡
  • āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļĻāļąāļžāļ—āđŒāđ€āļ‰āļžāļēāļ°; āđāļ›āļĨāļ„āļģāļĻāļąāļžāļ—āđŒāļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„

āļ„āļģāļ–āļēāļĄ 29: āđ€āļĄāļ•āļĢāļīāļāļ­āļ°āđ„āļĢāļ—āļĩāđˆāļˆāļ°āļ•āļīāļ”āļ•āļēāļĄāļŠāļģāļŦāļĢāļąāļšāļ˜āļļāļĢāļāļīāļˆ e-commerce?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡:

  • āļāļēāļĢāđ„āļ”āđ‰āļĄāļē: āđāļŦāļĨāđˆāļ‡ traffic, cost per acquisition
  • āļžāļĪāļ•āļīāļāļĢāļĢāļĄ: bounce rate, pages per session, time on site
  • āļāļēāļĢāđāļ›āļĨāļ‡: conversion rate āļ•āļēāļĄāļ‚āļąāđ‰āļ™āļ•āļ­āļ™ funnel, cart abandonment
  • āļāļēāļĢāļĢāļąāļāļĐāļē: repeat purchase rate, customer lifetime value
  • āļĢāļēāļĒāđ„āļ”āđ‰: average order value, revenue per visitor

āļ„āļģāļ–āļēāļĄ 30: āļ§āļīāļ˜āļĩāļ•āļīāļ”āļ•āļēāļĄāđ€āļ—āļĢāļ™āļ”āđŒ data analytics?

āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡:

  • āļ•āļīāļ”āļ•āļēāļĄāļŠāļīāđˆāļ‡āļžāļīāļĄāļžāđŒāđƒāļ™āļ­āļļāļ•āļŠāļēāļŦāļāļĢāļĢāļĄ: Towards Data Science, Analytics Vidhya
  • āđ€āļ‚āđ‰āļēāļĢāđˆāļ§āļĄāļāļēāļĢāđāļ‚āđˆāļ‡āļ‚āļąāļ™ Kaggle
  • āđ€āļ‚āđ‰āļēāļĢāđˆāļ§āļĄāļāļēāļĢāļ›āļĢāļ°āļŠāļļāļĄ: PyData, meetup data science āļ—āđ‰āļ­āļ‡āļ–āļīāđˆāļ™āđƒāļ™āļĄāļīāļĨāļēāļ™āļŦāļĢāļ·āļ­āđ‚āļĢāļĄ
  • āļ­āđˆāļēāļ™āđ€āļ­āļāļŠāļēāļĢāļŠāļģāļŦāļĢāļąāļšāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļĢāļļāđˆāļ™āđƒāļŦāļĄāđˆ
  • āļ—āļ”āļĨāļ­āļ‡āļāļąāļšāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāđƒāļŦāļĄāđˆāđƒāļ™āđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāļŠāđˆāļ§āļ™āļ•āļąāļ§

āļāļĨāļĒāļļāļ—āļ˜āđŒāļāļēāļĢāđ€āļ•āļĢāļĩāļĒāļĄāļ•āļąāļ§āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Data Analyst āđƒāļ™āļ­āļīāļ•āļēāļĨāļĩ 2026

  • āļ„āļ§āļēāļĄāđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ SQL: āļāļķāļāļšāļ™ LeetCode Database problems āđāļĨāļ° StrataScratch āļšāļĢāļīāļĐāļąāļ—āļ­āļīāļ•āļēāļĨāļĩāļ—āļ”āļŠāļ­āļš JOIN, window functions āđāļĨāļ° CTE āļĄāļēāļ
  • āļ„āļ§āļēāļĄāļŠāļģāļ™āļēāļ Python: āļ—āļģāđāļšāļšāļāļķāļāļŦāļąāļ” pandas āļšāļ™ Kaggle āđ€āļ™āđ‰āļ™ data cleaning āđāļĨāļ° aggregation
  • āļ„āļ§āļēāļĄāļ„āļļāđ‰āļ™āđ€āļ„āļĒāļāļąāļšāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­: āļ—āļąāļāļĐāļ° Power BI āļĄāļĩāļ„āđˆāļēāļĄāļēāļāđƒāļ™ enterprise āļ­āļīāļ•āļēāļĨāļĩ Tableau āļžāļšāđ„āļ”āđ‰āļ—āļąāđˆāļ§āđ„āļ›āđƒāļ™āļšāļĢāļīāļĐāļąāļ—āļ‚āđ‰āļēāļĄāļŠāļēāļ•āļī
  • āļšāļĢāļīāļšāļ—āļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ: āđ€āļ•āļĢāļĩāļĒāļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļˆāļēāļāļ‡āļēāļ™āļāđˆāļ­āļ™āļŦāļ™āđ‰āļēāļ—āļĩāđˆāđāļŠāļ”āļ‡āļāļēāļĢāđāļ›āļĨāļ„āļģāļ–āļēāļĄāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāđ€āļ›āđ‡āļ™āđāļ™āļ§āļ—āļēāļ‡āđ€āļŠāļīāļ‡āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ
  • āļ āļēāļĐāļēāļ­āļīāļ•āļēāļĨāļĩ: āđāļĄāđ‰āļ§āđˆāļēāļšāļĢāļīāļĐāļąāļ—āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāļŦāļĨāļēāļĒāđāļŦāđˆāļ‡āļ”āļģāđ€āļ™āļīāļ™āļ‡āļēāļ™āđ€āļ›āđ‡āļ™āļ āļēāļĐāļēāļ­āļąāļ‡āļāļĪāļĐ āļ„āļ§āļēāļĄāļ„āļĨāđˆāļ­āļ‡āđāļ„āļĨāđˆāļ§āļ āļēāļĐāļēāļ­āļīāļ•āļēāļĨāļĩāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āđ‚āļ­āļāļēāļŠāđƒāļ™āļ­āļļāļ•āļŠāļēāļŦāļāļĢāļĢāļĄāļ”āļąāđ‰āļ‡āđ€āļ”āļīāļĄ (āļ˜āļ™āļēāļ„āļēāļĢ āļāļēāļĢāļœāļĨāļīāļ• āļŠāļēāļ˜āļēāļĢāļ“āļđāļ›āđ‚āļ āļ„)

āđ€āļĢāļīāđˆāļĄāļāļķāļāļ‹āđ‰āļ­āļĄāđ€āļĨāļĒ!

āļ—āļ”āļŠāļ­āļšāļ„āļ§āļēāļĄāļĢāļđāđ‰āļ‚āļ­āļ‡āļ„āļļāļ“āļ”āđ‰āļ§āļĒāļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāđāļĨāļ°āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„āļ„āļĢāļąāļš

āļŠāļēāđ€āļĨāļ™āļˆāđŒāļ›āļĢāļ°āļˆāļģāļ§āļąāļ™

āļ„āļļāļ“āļŦāļēāļšāļąāđŠāļāđƒāļ™ Data Analytics āđ€āļˆāļ­āđ„āļŦāļĄ

āđ‚āļ„āđ‰āļ”āļˆāļĢāļīāļ‡āļŦāļ™āļķāđˆāļ‡āļŠāļīāđ‰āļ™ āļšāļąāđŠāļāļ—āļĩāđˆāļ‹āđˆāļ­āļ™āļ­āļĒāļđāđˆāļŦāļ™āļķāđˆāļ‡āļˆāļļāļ” āļ§āļąāļ™āļĨāļ°āļŦāļ™āļķāđˆāļ‡āļ„āļĢāļąāđ‰āļ‡ āļĨāļ­āļ‡āđ„āļ”āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļĄāļĩāļšāļąāļāļŠāļĩ

Anthony Fillion-Maillet

āđ€āļ‚āļĩāļĒāļ™āđ‚āļ”āļĒ

Anthony Fillion-Maillet

āļœāļđāđ‰āļāđˆāļ­āļ•āļąāđ‰āļ‡ SharpSkill

āđ€āļ›āđ‡āļ™āļ™āļąāļāļžāļąāļ’āļ™āļēāļŸāļđāļĨāļŠāđāļ•āļāļĄāļēāļāļ§āđˆāļē 10 āļ›āļĩ āļ”āļđāđāļĨ SharpSkill āđāļĨāļ°āļĢāļąāļšāļœāļīāļ”āļŠāļ­āļšāļ—āļļāļāļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ€āļœāļĒāđāļžāļĢāđˆāļ—āļĩāđˆāļ™āļĩāđˆ

āļ­āļąāļ›āđ€āļ”āļ•āđ€āļĄāļ·āđˆāļ­ 26 āļŠāļīāļ‡āļŦāļēāļ„āļĄ 2569

āđāļ—āđ‡āļ

#data-analyst
#sql
#python
#interview
#italy

āđāļŠāļĢāđŒ

āļšāļ—āļ„āļ§āļēāļĄāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡

āļ„āļđāđˆāļĄāļ·āļ­āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ data analyst 2026 āļžāļĢāđ‰āļ­āļĄ SQL āđāļĨāļ° Python

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Data Analyst 2026: āļ„āļđāđˆāļĄāļ·āļ­āļ„āļĢāļšāļ–āđ‰āļ§āļ™ SQL, Python āđāļĨāļ° Analytics

āļ„āļđāđˆāļĄāļ·āļ­āļ„āļĢāļšāļ–āđ‰āļ§āļ™āļŠāļģāļŦāļĢāļąāļšāļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ data analyst 2026 āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ SQL window functions, Python pandas, āđāļ™āļ§āļ„āļīāļ”āļŠāļ–āļīāļ•āļī āđāļĨāļ° business case study āļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”āļˆāļĢāļīāļ‡

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™ Data Analytics āļ—āļĩāđˆāļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ SQL queries, Python scripts āđāļĨāļ°āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨ Dashboard

25 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™ Data Analytics āļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒāļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āļ›āļĩ 2026

āļĢāļ§āļĄāļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™ Data Analytics āļ—āļĩāđˆāļ–āļđāļāļ–āļēāļĄāļšāđˆāļ­āļĒāļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āļ›āļĩ 2026 āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ SQL, Python, Power BI, āļŠāļ–āļīāļ•āļī āđāļĨāļ°āļ„āļģāļ–āļēāļĄāđ€āļŠāļīāļ‡āļžāļĪāļ•āļīāļāļĢāļĢāļĄ āļžāļĢāđ‰āļ­āļĄāļ„āļģāļ•āļ­āļšāđ‚āļ”āļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđāļĨāļ°āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”

Pandas 3.0 API āđƒāļŦāļĄāđˆāđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ data analytics 2026

Pandas 3.0 āđƒāļ™āļ›āļĩ 2026: API āđƒāļŦāļĄāđˆ, Breaking Changes āđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™

āļ„āļđāđˆāļĄāļ·āļ­āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒāđ€āļāļĩāđˆāļĒāļ§āļāļąāļš Pandas 3.0 āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ Copy-on-Write, PyArrow string backend, pd.col() expressions, breaking changes āđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ data analytics