Tutorial

Free Datasets for Data Analysis: Top Sources & Projects

Best free datasets for data analysis, SQL, and Excel. Direct download links, 5 portfolio project blueprints, and real-world cleaning trap fixes.

Anuj SainiOct 1, 2025Updated Oct 7, 202612 min read

Building an impressive portfolio is the single best way to prove your analytical capability to hiring managers. However, finding clean, realistic, and domain-relevant datasets often takes hours of frustrating searching.

Hiring teams do not want to see cookie-cutter tutorial copies; they evaluate how you ingest real-world records, handle dirty edge cases, execute multi-table joins, and translate numbers into commercial decisions. Sourcing verified open data gives you access to the exact schema complexities and scale boundaries encountered in production environments.

Whether you are mastering core data analyst skills, working through our free data analyst learning path, or assembling hiring-ready projects, selecting the right dataset sets the foundation of your portfolio.


💡 3 Golden Rules for Portfolio Projects

  1. Never just show code: Every project must answer a clear commercial question with actionable business conclusions and an executive summary.
  2. Clean up and document messy anomalies: Real enterprise data has missing foreign keys, negative refund quantities, and inconsistent dates — show how you identify and reconcile them.
  3. Include interactive, decision-ready visuals: Complement your SQL and Python code with screenshots or links to interactive dashboards (Tableau Public, Power BI, Streamlit) that business stakeholders can explore.

Below are the most recognized open-source datasets across e-commerce, entertainment, travel, and big data, organized by difficulty and technical focus.


1. Online Retail E-Commerce Transaction Ledger

  • Download: UCI Online Retail Dataset (Direct ZIP / Excel / CSV)
  • Source: UCI Machine Learning Repository
  • Scale: 541,909 rows | 4,372 customer accounts
  • Difficulty: Intermediate
  • Core Skills: SQL window functions, Customer Cohort Retention, RFM Segmentation, Time Series Forecasting

Why Hiring Managers Value It: This dataset contains real transactional records from a UK-based online gifts retailer over a one-year period. It reflects genuine operational quirks: 135,080 rows lack a CustomerID, and cancelled orders are logged as separate rows with an invoice number prefixed with 'C' and negative quantities. Analyzing this dataset proves you know how to reconcile gross revenues against refund liabilities without blindly dropping valid sales volume.

Suggested Portfolio Project:

  • E-Commerce Funnel & RFM Customer Segmentation: Segment users into Champions, Loyalists, and At-Risk groups based on Recency, Frequency, and Monetary metrics. Build 3 targeted retention campaigns and quantify the potential recovered revenue.

2. Kaggle Superstore Sales Benchmark

  • Download: Kaggle Superstore Dataset
  • Source: Kaggle Open Data Platform
  • Scale: 9,994 orders spanning 4 years
  • Difficulty: Beginner to Intermediate
  • Core Skills: Excel pivot tables, multidimensional slicing, profit margin sensitivity, discount optimization, Power BI / Tableau

Why Hiring Managers Value It: Superstore is the universal benchmark for business intelligence. It simulates an enterprise office supplier selling across 4 geographic regions, 3 customer segments (Consumer, Corporate, Home Office), and multiple shipping tiers. It is the premier dataset for practicing spreadsheet modeling using our guide on data for excel practice or completing interactive exercises through excel practice online.

Suggested Portfolio Project:

  • Executive Regional Profitability Dashboard: Identify which product subcategories and discount tiers generate negative profit margins. Build a dynamic pricing scenario calculator in Tableau or Power BI.

3. Inside Airbnb City Listings

  • Download: Inside Airbnb Data Portal (Select NYC, London, Paris, Tokyo, etc.)
  • Source: Inside Airbnb Project
  • Scale: Millions of rows across global metropolitan markets
  • Difficulty: Intermediate
  • Core Skills: Geospatial analysis, Dynamic price modeling, Multi-table relational joins, Review sentiment

Why Hiring Managers Value It: Contains detailed listing attributes, neighborhood boundaries, host response metrics, 365-day calendar availability, and guest reviews. Unlike toy datasets, Airbnb's data requires linking listings, calendars, and review tables together using foreign keys.

Suggested Portfolio Project:

  • Short-Term Rental Yield & Price Optimization Tool: Build an interactive pricing estimator that recommends optimal nightly prices for prospective hosts based on neighborhood saturation, room type, and historical occupancy rates.

4. Netflix Movies & TV Shows Streaming Catalog

  • Download: Kaggle Netflix Dataset
  • Source: Kaggle
  • Scale: 8,800+ records
  • Difficulty: Beginner
  • Core Skills: Exploratory Data Analysis (EDA), Text parsing, Categorical distributions, Trend visualization

Why Hiring Managers Value It: Ideal for beginners demonstrating clean Python data visualization with Pandas, Matplotlib, and Seaborn. You can analyze how movie runtimes have contracted over decades, evaluate country-level production patterns, and investigate Netflix's shifting investment strategy between TV series and feature films.

Suggested Portfolio Project:

  • Streaming Content Evolution & Licensing Strategy Memo: Present a 1-page executive analysis identifying content saturation in mature markets vs emerging content growth in South Korea and India.

5. Spotify Top Songs Audio Features

  • Download: Spotify Top Songs Dataset on Kaggle
  • Source: Spotify Web API / Kaggle
  • Scale: 950+ songs with acoustic metadata
  • Difficulty: Beginner
  • Core Skills: Correlation matrices, Feature distributions, Hypothesis testing, Seaborn visuals

Why Hiring Managers Value It: Includes acoustic metrics such as danceability, BPM, valence, acousticness, and speechiness matched with global stream counts. Great for demonstrating hypothesis testing, correlation analysis, and regression modeling.

Suggested Portfolio Project:

  • Hit Song Anatomy & Streaming Longevity: Test whether song tempo or acousticness correlates with viral longevity on TikTok and Spotify playlists.

6. NYC TLC Yellow Taxi Trip Telemetry (Big Data)

  • Download: NYC Taxi & Limousine Commission Open Data (Parquet monthly partitions)
  • Source: NYC TLC Official Portal
  • Scale: 100M+ trips annually (2.8M to 3.5M rows per monthly partition)
  • Difficulty: Advanced
  • Core Skills: Big Data querying, Apache Parquet, DuckDB, Columnar storage, Surge pricing optimization

Why Hiring Managers Value It: The industry gold standard for large-scale data engineering and modern SQL engine benchmarks. Each row captures pick-up and drop-off timestamps, GPS coordinates, metered fares, toll rates, and tip amounts. Working with this dataset shows that your capabilities extend beyond in-memory Excel sheets into production data warehousing.

Suggested Portfolio Project:

  • Urban Transit Surge & Tipping Economics at Scale: Query 10 million rows using DuckDB to map tipping percentages against weather conditions, airport destinations, and rush hour surge tiers.

7. Titanic Survival Machine Learning Baseline

  • Download: Titanic Dataset on Kaggle
  • Source: Kaggle Competitions
  • Scale: 891 rows
  • Difficulty: Beginner
  • Core Skills: Missing data imputation, Feature engineering (title extraction, family size), Binary logistic regression

Why Hiring Managers Value It: The quintessential machine learning baseline. It is great for demonstrating clean feature engineering and disciplined cross-validation without getting overwhelmed by huge dataset sizes.


Dataset Quick Reference Matrix

Feature / Criteria

Best Platforms to Discover Free Datasets

When building niche portfolio projects tailored to specific industries (healthcare, finance, sports, or climate), bookmark these trusted repositories:

  1. Kaggle Datasets: The world's largest data science platform with over 300,000 community datasets, accompanying code notebooks, and discussion forums.
  2. UCI Machine Learning Repository: The academic benchmark catalog hosting meticulously documented datasets across finance, biology, and e-commerce.
  3. Google Dataset Search: A specialized search engine indexing open data across government archives, universities, and scientific repositories.
  4. Data.gov: The U.S. Federal open data portal covering transportation, agriculture, climate, and demographic records.
  5. AWS Open Data Registry: Cloud-optimized massive datasets (satellite imagery, genomics, climate models) queryable via S3 and AWS Athena.
  6. FiveThirtyEight Data: Clean, journalism-backed datasets covering politics, polling, sports economics, and cultural trends.
  7. Hugging Face Datasets: The primary open-source hub for NLP corpora, tabular benchmarks, and multi-modal AI datasets.

5 High-Impact Portfolio Project Ideas (With Execution Blueprints)

To stand out in competitive hiring pipelines, choose one of these 5 structured project blueprints:

[Business Problem] ➔ [Data Audit & Cleaning] ➔ [SQL / Python Analysis] ➔ [Dashboard + Executive Memo]

Project 1: E-Commerce RFM Segmentation & Cohort Retention

  • Dataset: UCI Online Retail
  • Tech Stack: SQL (PostgreSQL or DuckDB), Python (Pandas), Power BI
  • The Business Question: Which customer cohorts drive 80% of repeat revenue, and what is the 90-day churn probability after the second purchase?
  • Key Steps:
    1. Filter out cancellations (InvoiceNo starting with 'C') and null CustomerIDs while isolating refund liabilities.
    2. Group orders by monthly customer acquisition cohorts and compute a triangular retention matrix.
    3. Calculate RFM (Recency, Frequency, Monetary) scores from 1 to 5 for every active customer.
  • Resume Bullet: "Engineered SQL cohort retention model on 540K+ retail records, segmenting 4.3K customers into RFM tiers and identifying a 14% revenue leakage in 60-day repeat buyers."

Project 2: Airbnb City Price & Occupancy Optimization Dashboard

  • Dataset: Inside Airbnb (Pick your city: NYC, London, or Paris)
  • Tech Stack: Python (GeoPandas), Tableau Public
  • The Business Question: How should an investor price a 2-bedroom rental in a specific neighborhood to maximize monthly yield without sacrificing occupancy?
  • Key Steps:
    1. Join listings with 365-day calendar pricing to calculate true realized occupancy rates.
    2. Remove extreme outlier prices (e.g. $10,000/night placeholder listings).
    3. Build an interactive Tableau dashboard allowing users to filter by neighborhood, amenities, and room type to view optimal price bands.
  • Resume Bullet: "Built interactive Tableau market analysis of 35K Airbnb listings, calculating revenue yield curves by neighborhood and identifying an optimal $145/night rate for maximum host occupancy."

Project 3: Tech Salary & Compensation Determinants

  • Dataset: Stack Overflow Annual Developer Survey (Stack Overflow Data)
  • Tech Stack: Python (Pandas, Statsmodels), Streamlit
  • The Business Question: What is the marginal salary premium for cloud certifications vs years of professional experience across developers in India vs the US?
  • Key Steps:
    1. Clean multi-select survey columns (technologies worked with, languages used).
    2. Handle currency conversion and adjust for purchasing power parity (PPP).
    3. Run an OLS regression or build a Streamlit salary calculator estimating compensation based on tech stack and seniority.
  • Resume Bullet: "Modeled compensation drivers across 70K survey respondents using Python regression analysis, isolating a 22% salary premium for cloud database proficiency."

Project 4: Music Streaming Longevity & Audio Feature Analysis

  • Dataset: Spotify Top Songs 2023
  • Tech Stack: Python (Seaborn, Scipy, Stats)
  • The Business Question: Which acoustic features (danceability, valence, BPM, energy) differentiate viral short-lived singles from perennial catalog hits?
  • Key Steps:
    1. Perform exploratory data analysis to plot correlation heatmaps across audio features and stream volume.
    2. Conduct two-sample hypothesis testing between top 10% streamed songs and the median catalog.
    3. Synthesize findings into visual charts for music marketing executives.
  • Resume Bullet: "Conducted statistical hypothesis tests on 950+ commercial music tracks, uncovering a statistically significant (p < 0.01) correlation between acoustic valence and 500M+ streaming milestones."

Project 5: Web Marketing Attribution & Conversion Funnel

  • Dataset: Google Merchandise Store BigQuery Sample (BigQuery Public Datasets)
  • Tech Stack: Google BigQuery (SQL), Looker Studio
  • The Business Question: Which acquisition channels generate high initial traffic but fail to convert in checkout, and how does first-touch attribution compare to last-touch?
  • Key Steps:
    1. Model session funnels from page view to add-to-cart, checkout initiation, and completed purchase.
    2. Implement multi-touch attribution queries comparing organic search, paid ads, and referral traffic.
    3. Build a Looker Studio funnel breakdown showing where user drop-off is highest.
  • Resume Bullet: "Analyzed multi-stage e-commerce checkout funnel in BigQuery, discovering a 38% drop-off at shipping selection and modeling channel conversion under first-touch attribution."

Practical Data Cleaning Traps: How Real Datasets Trip Students Up

Public datasets are rarely clean. When hiring managers look at your code, they inspect how you solved common real-world data traps. Below are four common failure modes and how to fix them.

Trap 1: European Number and Decimal Delimiter Corruption

The Issue: Many European and global datasets use commas as decimal separators (12,50 instead of 12.50) and periods as thousand separators (1.000). If ingested naively with pd.read_csv, columns are parsed as text strings (object).

python
# ❌ TRAP: Naive load treats decimal comma as text
import pandas as pd
df_bad = pd.read_csv('euro_sales.csv')  # 'Price' column parsed as object: '12,50'
 
# ✅ FIX: Explicit decimal parameter and thousand separator handling
df_fixed = pd.read_csv('euro_sales.csv', decimal=',', thousands='.')
print(df_fixed['Price'].dtype)  # float64

Trap 2: CustomerID Floating Point Coercion Caused by Nulls

The Issue: In standard pandas, integer columns with missing values (NaN) are silently coerced into floating point numbers (CustomerID = 17850 becomes 17850.0). When saved back to CSV, strings joined across systems fail because '17850' does not match '17850.0'.

python
# ❌ TRAP: Nullable integer silently converted to float
df_retail = pd.read_csv('online_retail.csv')
print(df_retail['CustomerID'].head(1)) # 17850.0
 
# ✅ FIX: Use pandas nullable integer type 'Int64' (capitalized)
df_retail['CustomerID'] = df_retail['CustomerID'].astype('Int64')
print(df_retail['CustomerID'].head(1)) # 17850

Trap 3: Timezone Offset Desynchronization in Telemetry Data

The Issue: Datasets capturing server logs, ride trips, or transactions often record timestamps without UTC offsets. If you calculate hourly transaction velocity without localizing timezones, morning rush-hour peaks will appear shifted by several hours.

python
# ✅ FIX: Explicit UTC conversion and timezone localization
df_trips = pd.read_csv('trips.csv')
df_trips['pickup_utc'] = pd.to_datetime(df_trips['pickup_datetime'], utc=True)
df_trips['pickup_local'] = df_trips['pickup_utc'].dt.tz_convert('America/New_York')
df_trips['pickup_hour'] = df_trips['pickup_local'].dt.hour

Trap 4: Survivor Bias & Data Leakage in Time-Series Splits

The Issue: When splitting time-series transaction records into training and validation sets, random train-test splitting leaks future transactions into past models. In retail or churn datasets, this creates artificial 95%+ accuracy that collapses when deployed chronologically.

python
# ❌ TRAP: Random splitting causes chronological data leakage
from sklearn.model_selection import train_test_split
X_train, X_test = train_test_split(df_features, test_size=0.2, random_state=42)
 
# ✅ FIX: Strict temporal cutoff split based on transaction calendar
cutoff_date = '2011-09-01'
train_data = df_features[df_features['InvoiceDate'] < cutoff_date]
test_data = df_features[df_features['InvoiceDate'] >= cutoff_date]

Always Verify Dataset Licenses

Before publishing portfolio repositories or client demonstrations, check the dataset license. Datasets marked CC0: Public Domain or MIT can be shared and adapted freely. Datasets marked CC BY-NC 4.0 prohibit commercial use, and DbCL (Database Contents License) requires open attribution.


Minimal Runnable Example: Ingesting and Auditing E-Commerce Records

Below is a reproducible Python script auditing the Online Retail schema, reconciling gross merchandise volume against cancellation liabilities:

python
import io
import pandas as pd
 
raw_csv_payload = """InvoiceNo,StockCode,Description,Quantity,InvoiceDate,UnitPrice,CustomerID,Country
536365,85123A,WHITE HANGING HEART T-LIGHT HOLDER,6,2010-12-01 08:26:00,2.55,17850,United Kingdom
536365,71053,WHITE METAL LANTERN,6,2010-12-01 08:26:00,3.39,17850,United Kingdom
C536379,D,Discount,-1,2010-12-01 09:41:00,27.50,14527,United Kingdom
536381,22492,MINI PAINT SET VINTAGE ,12,2010-12-01 09:41:00,0.65,,Germany
536381,84978,HANGING HEART JAR T-LIGHT HOLDER,-4,2010-12-01 09:41:00,1.25,15311,United Kingdom
"""
 
df_raw = pd.read_csv(io.StringIO(raw_csv_payload))
 
# Step 1: Parse datetime and strip string whitespace
df_raw['InvoiceDate'] = pd.to_datetime(df_raw['InvoiceDate'])
df_raw['Description'] = df_raw['Description'].str.strip()
 
# Step 2: Separate cancellations and gross sales
df_raw['IsCancelled'] = df_raw['InvoiceNo'].str.startswith('C')
df_raw['LineTotal'] = df_raw['Quantity'] * df_raw['UnitPrice']
 
completed_orders = df_raw[(df_raw['Quantity'] > 0) & (~df_raw['IsCancelled'])].copy()
cancellations = df_raw[df_raw['IsCancelled'] | (df_raw['Quantity'] < 0)].copy()
 
gross_sales = completed_orders['LineTotal'].sum()
refund_liabilities = cancellations['LineTotal'].sum()
net_revenue = gross_sales + refund_liabilities
 
print("=== DATA AUDIT SUMMARY ===")
print(f"Total Rows Ingested:       {len(df_raw)}")
print(f"Completed Line Items:      {len(completed_orders)}")
print(f"Cancelled / Return Items:  {len(cancellations)}")
print(f"Gross Merchandise Value:   ${gross_sales:,.2f}")
print(f"Refund Liabilities:        ${refund_liabilities:,.2f}")
print(f"Net Reconciled Revenue:    ${net_revenue:,.2f}")
text
=== DATA AUDIT SUMMARY ===
Total Rows Ingested:       5
Completed Line Items:      3
Cancelled / Return Items:  2
Gross Merchandise Value:   $43.44
Refund Liabilities:        -$32.50
Net Reconciled Revenue:    $10.94

Notice the critical distinction: if an analyst carelessly sums LineTotal without accounting for negative items, gross sales of $43.44 are misstated. Demonstrating this awareness in your project documentation sets you apart from junior applicants.


Working with Large Datasets: Parquet & DuckDB

When public datasets expand beyond 1 million rows, standard in-memory operations in pandas or Microsoft Excel experience memory bloat or crash with out-of-memory errors.

Columnar Storage vs Uncompressed CSV Benchmark

Format / EngineStorage Size on DiskIn-Memory RAM FootprintFull Table Aggregation TimeQuery Command Syntax
Raw Uncompressed CSV1,420 MB3,840 MB (pandas DataFrame)8.42 secondspd.read_csv('telemetry.csv').groupby('region').mean()
Gzipped CSV (.csv.gz)394 MB3,840 MB (pandas DataFrame)14.15 seconds (CPU decompression bottleneck)pd.read_csv('telemetry.csv.gz')
Apache Parquet (Snappy)168 MB820 MB (Arrow Table)0.44 secondspd.read_parquet('telemetry.parquet')
DuckDB on Parquet168 MB92 MB (Zero-copy streaming)0.18 secondsduckdb.query("SELECT region, AVG(val) FROM 'telemetry.parquet' GROUP BY 1")

Converting raw open CSVs to Apache Parquet yields an immediate 78% reduction in storage volume and cuts query execution time down to 0.18 seconds via DuckDB.


Ready to Build Job-Ready Analytics Projects?

Master SQL querying, Python data pipelines, and executive dashboards with real enterprise datasets in our structured learning paths.

Explore the Data Analyst Track

Frequently Asked Questions

Where can I find free datasets for data analysis projects?

The best platforms for free datasets are Kaggle Datasets (over 300,000 tables), UCI Machine Learning Repository (curated academic & transactional data), Google Dataset Search, Data.gov, and Inside Airbnb. For enterprise SQL practice, the UCI Online Retail dataset provides 541,909 real transactional records.

How many projects should I include in my data analyst portfolio?

Focus on 3 deeply documented, production-grade projects rather than 10 shallow notebooks. Demonstrate SQL query joins and window functions, Python data cleaning and EDA, and interactive Power BI or Tableau dashboards tied directly to commercial business recommendations.

How do I make my analysis stand out when using publicly available datasets?

Stand out by treating public datasets as real business case studies: audit and clean realistic anomalies (NULLs, refund negative quantities, and format discrepancies), formulate commercial hypotheses, calculate unit economics, and write clear executive memos for non-technical stakeholders.

Which free datasets for Excel work best for pivot tables and dashboards?

The Kaggle Superstore Sales dataset (9,994 rows) and AdventureWorks extracts are the gold standards for Excel. They feature clean relational dimensions, geographic hierarchies, discount rates, and profit margins without exceeding Excel's 1-million-row limit.

How do I safely download and process multi-gigabyte open datasets?

When processing large datasets like NYC Yellow Taxi (100M+ rows), avoid browser downloads. Stream files via command-line utilities (curl/wget), convert raw CSVs into compressed Apache Parquet formats, and use DuckDB or pandas chunked batch processing to prevent out-of-memory crashes.

Anuj Saini

Written by

Anuj SainiFounder & Lead Instructor

Founder at Topfolio with 6+ years in data & analytics across JPMC, Ultrahuman, and high-growth startups. Sat on hiring panels, reviewed 500+ resumes, and writes practical SQL & data guides.