Data Transformation with Polars
Liam Brannigan
Data Scientist & Polars Contributor
shape: (5, 5)
| business | location | type | rating | capacity |
| --- | --- | --- | --- | --- |
| str | str | str | i64 | i64 |
|------------------|-----------------|------------|--------|----------|
| 7burgers | Wakey Wakey | restaurant | 5 | 55 |
| Bang Bang Burger | Forest Rd. | restaurant | 4 | 55 |
| Costa Coffee | City Point | café | 5 | 41 |
| Costa Coffee | The Moorgate | takeaway | 3 | 0 |
| The Queens Head | Denman St. | bar | 5 | 187 |
ratings.with_columns(
)
ratings.with_columns(
pl.when( )
)
ratings.with_columns(
pl.when(pl.col("rating") == 5)
)
ratings.with_columns(
pl.when(pl.col("rating") == 5).then(pl.lit("Highly Rated"))
)
$$
$$
pl.lit() to pass a literal value, not a column nameratings.with_columns(
pl.when(pl.col("rating") == 5).then(pl.lit("Highly Rated"))
.otherwise(pl.lit("Needs Improvement"))
)
ratings.with_columns(
pl.when(pl.col("rating") == 5).then(pl.lit("Highly Rated"))
.otherwise(pl.lit("Needs Improvement")).alias("quality")
)
ratings.with_columns(
pl.when(pl.col("rating") == 5).then(pl.lit("Highly Rated"))
.otherwise(pl.lit("Needs Improvement")).alias("quality")
)
shape: (5, 6)
| business | location | type | rating | capacity | quality |
| --- | --- | --- | --- | --- | --- |
| str | str | str | i64 | i64 | str |
|------------------|-----------------|------------|--------|----------|--------------------|
| 7burgers | Wakey Wakey | restaurant | 5 | 55 | Highly Rated |
| Bang Bang Burger | Forest Rd. | restaurant | 4 | 55 | Needs Improvement |
| ... | ... | ... | ... | ... | ... |
shape: (5, 5)
| business | location | type | rating | capacity |
| --- | --- | --- | --- | --- |
| str | str | str | i64 | i64 |
|------------------|-----------------|------------|--------|----------|
| 7burgers | Wakey Wakey | restaurant | 5 | 55 |
| Bang Bang Burger | Forest Rd. | restaurant | 4 | 55 |
| Costa Coffee | City Point | café | 5 | 41 |
| Costa Coffee | The Moorgate | takeaway | 3 | 0 |
| The Queens Head | Denman St. | bar | 5 | 187 |
ratings.with_columns(
)
ratings.with_columns(
pl.when(pl.col("capacity") > 100)
)
ratings.with_columns(
pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
)
ratings.with_columns(
pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
.when(pl.col("capacity") >= 20)
)
ratings.with_columns(
pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
.when(pl.col("capacity") >= 20).then(pl.lit("Medium"))
)
ratings.with_columns(
pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
.when(pl.col("capacity") >= 20).then(pl.lit("Medium"))
.otherwise(pl.lit("Small"))
)
ratings.with_columns(
pl.when(pl.col("capacity") > 100).then(pl.lit("Large"))
.when(pl.col("capacity") >= 20).then(pl.lit("Medium"))
.otherwise(pl.lit("Small")).alias("venue_size")
)
shape: (3, 6)
| business | location | type | rating | capacity | venue_size |
| --- | --- | --- | --- | --- | --- |
| str | str | str | i64 | i64 | str |
|------------------|-----------------|------------|--------|----------|------------|
| 7burgers | Wakey Wakey | restaurant | 5 | 55 | Medium |
| Costa Coffee | The Moorgate | takeaway | 3 | 0 | Small |
| The Queens Head | Denman St. | bar | 5 | 187 | Large |
shape: (5, 5)
| business | location | type | rating | capacity |
| --- | --- | --- | --- | --- |
| str | str | str | i64 | i64 |
|------------------|-----------------|------------|--------|----------|
| 7burgers | Wakey Wakey | restaurant | 5 | 55 |
| Bang Bang Burger | Forest Rd. | restaurant | 4 | 55 |
| Costa Coffee | City Point | café | 5 | 41 |
| Costa Coffee | The Moorgate | takeaway | 3 | 0 |
| The Queens Head | Denman St. | bar | 5 | 187 |
type columnratings.with_columns(
pl.col("type")
)
ratings.with_columns(
pl.col("type").replace( )
)
ratings.with_columns(
pl.col("type").replace("café", "restaurant")
)
shape: (5, 5)
| business | location | type | rating | capacity |
| --- | --- | --- | --- | --- |
| str | str | str | i64 | i64 |
|------------------|-----------------|------------|--------|----------|
| 7burgers | Wakey Wakey | restaurant | 5 | 55 |
| Bang Bang Burger | Forest Rd. | restaurant | 4 | 55 |
| Costa Coffee | City Point | restaurant | 5 | 41 |
| Costa Coffee | The Moorgate | takeaway | 3 | 0 |
| The Queens Head | Denman St. | bar | 5 | 187 |
Data Transformation with Polars