End-to-end Credit Card Fraud Detection Analysis on 284,807 transactions | Analyzing fraud patterns, time-based activity, amount outliers & building a banking fraud dashboard using Python, Pandas & Seaborn
An end-to-end Fraud Detection Analysis project on 284,807 credit card transactions, completed as part of the Python for Data Analysis course.
Detect fraud patterns, identify high-risk time windows, analyze suspicious transaction characteristics, detect amount outliers, and build a comprehensive banking fraud dashboard.
- Source: CreditCardData.csv — Real anonymized European cardholder data (Sept 2013)
- Records: 284,807 transactions
- Fraud Cases: 492 (0.172% of all transactions)
- Features: Time, V1–V28 (PCA-transformed), Amount, Class
⚠️ Dataset not included due to file size (>25MB).
Download from: https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud
| Library | Purpose |
|---|---|
| NumPy | IQR calculations, numerical operations |
| Pandas | Data cleaning, groupby, time analysis |
| Matplotlib | Histograms, time series, dashboard |
| Seaborn | Boxplots, heatmaps, scatter plots |
| # | Question |
|---|---|
| Q1 | Fraud percentage of all transactions |
| Q2 | Total fraudulent transaction count |
| Q3 | Fraud vs Legitimate distribution |
| Q4 | Average amount: Fraud vs Legitimate |
| Q5 | Top highest fraudulent transactions |
| Q6 | Transaction amount distribution (histogram) |
| Q7 | Correlation heatmap (key features) |
| Q8 | Hour-by-hour fraud activity analysis |
| Q9 | Do fraud transactions have higher amounts? (Boxplot) |
| Q10 | Top suspicious transactions (high amount + early time) |
| Q11 | Detailed amount distribution by buckets |
| Q12 | Relationship between Amount and Time |
| Q13 | Fraud trend over time (3-hour windows) |
| Q14 | Outlier detection using IQR method |
| Q15 | Banking Fraud Dashboard (8-panel) |
- Extreme class imbalance: fraud = only 0.17% of all transactions
- Fraud peaks in late night/early morning hours (0–6 AM)
- V14 and V17 are the strongest fraud predictors among PCA features
- Fraudulent transactions have lower median amounts but larger maximums
- Amount outliers show significantly higher fraud rates
- Fraud activity is not uniform — spikes at specific time windows
git clone https://github.com/ammarelsayed-2a/Project-21-Python-For-Data-Analysis-Credit-Card-Fraud.git
cd Project-21-Python-For-Data-Analysis-Credit-Card-Fraud
jupyter notebook "Project 21 CreditCardFraud.ipynb"Ammar Elsayed — Python for Data Analysis | 2026
LinkedIn