runtime

datasets real and made-up data to practise on

Datasets

Data for the Playground, Database Lab and Performance Lab. Pick one and open its files.

A fictional film catalogue with users’ half-star ratings and free-text tags.

4,810 ratings6 tablesJan 2015 – Dec 2025

what to watch for

Tricky rows

  • Titles with the year appended, e.g. "Glass Harbor (2019)"106 rows
  • Titles with stray spaces64 rows
  • The same rating exported twice29 rows
  • Ratings outside 0.5–5 (0, 5.5, 10) from an old 10-point import19 rows

files

Open a file to see what one row means, its columns and a preview. Open in Playground starts a new file there with code that loads it.

movies2,123 rows · 10 columns · CSV

One film. Titles can repeat across years (remakes).

In your code: data/movies.csv

  • movie_idintegerkey

    Film ID

  • titletext

    Title (not unique)

  • release_yearinteger

    Year of release

  • release_datedate

    Release date

  • runtime_mininteger · can be empty

    Running time, minutes

  • original_languagetext

    Two-letter language code (en, fr, …)

  • countrytext

    Production country

  • directortext

    Invented director

  • budget_usdinteger · can be empty

    Budget, USD; often unknown

  • revenue_usdinteger · can be empty

    Box-office revenue, USD; often unknown

genres18 rows · 2 columns · CSV

One genre.

In your code: data/genres.csv

  • genre_idintegerkey

    Genre ID

  • nametext

    Genre name

movie_genres3,673 rows · 2 columns · CSV

A film belongs to one to three genres.

In your code: data/movie_genres.csv

  • movie_idintegerkey→ movies

    Film

  • genre_idintegerkey→ genres

    Genre

users120 rows · 4 columns · CSV

One user account. Some users never rate anything.

In your code: data/users.csv

  • user_idintegerkey

    User ID

  • joined_attimestamp

    Sign-up time, UTC

  • countrytext

    Country

  • age_bandtext · can be empty

    Age band; empty if not given

ratings4,810 rows · 4 columns · CSV

One user’s rating of one film (0.5 to 5 in half stars). A user rates a film at most once.

In your code: data/ratings.csv

  • user_idintegerkey→ users

    Who rated

  • movie_idintegerkey→ movies

    Film

  • ratingdecimal

    0.5–5.0

  • rated_attimestamp

    When, UTC

tags91 rows · 4 columns · CSV

A free-text tag a user put on a film. Same idea, different spellings: "sci-fi", "Sci-Fi", "scifi".

In your code: data/tags.csv

  • user_idintegerkey→ users

    Who tagged

  • movie_idintegerkey→ movies

    Film

  • tagtextkey

    Tag as typed

  • tagged_attimestamp

    When, UTC

relationships

How to join these tables. Left column matches the right column.

  • movie_genres.movie_id → movies.movie_id
  • movie_genres.genre_id → genres.genre_id
  • ratings.user_id → users.user_id
  • ratings.movie_id → movies.movie_id
  • tags.user_id → users.user_id
  • tags.movie_id → movies.movie_id

where the course uses it

Lessons and practice questions use small samples of Movies; projects open its files.

Movies dataset — Python Datasets · Runtime