Concatenando DataFrames

Transformação de Dados com Polars

Liam Brannigan

Data Scientist & Polars Contributor

De volta ao app de restaurantes

shape: (4, 4)
| business         | location    | review | price |
| ---              | ---         | ---    | ---   |
| str              | str         | f64    | i64   |
|------------------|-------------|--------|-------|
| 7burgers         | Wakey Wakey | 4.2    | 15    |
| Bang Bang Burger | Forest Rd.  | 3.8    | 12    |
| Costa Coffee     | City Point  | 4.5    | 8     |
| The Queens Head  | Denman St.  | 4.7    | 25    |
Transformação de Dados com Polars

Concatenação

Diagrama mostrando três DataFrames dispostos verticalmente

Transformação de Dados com Polars

Concatenação

Diagrama mostrando três DataFrames dispostos verticalmente se combinando em um único DataFrame

Transformação de Dados com Polars

Nossos dados do centro de Londres

import polars as pl

central = pl.read_csv("restaurants_central.csv")
shape: (4, 4)
| business         | location    | review | price |
| ---              | ---         | ---    | ---   |
| str              | str         | f64    | i64   |
|------------------|-------------|--------|-------|
| 7burgers         | Wakey Wakey | 4.2    | 15    |
| Bang Bang Burger | Forest Rd.  | 3.8    | 12    |
| Costa Coffee     | City Point  | 4.5    | 8     |
| The Queens Head  | Denman St.  | 4.7    | 25    |
Transformação de Dados com Polars

Nossos dados do sul de Londres

south = pl.read_csv("restaurants_south.csv")
shape: (3, 4)
| business       | location       | review | price |
| ---            | ---            | ---    | ---   |
| str            | str            | f64    | i64   |
|----------------|----------------|--------|-------|
| Pizzeria Bella | Bermondsey St. | 3.5    | 18    |
| Costa Coffee   | Waterloo       | 4.1    | 8     |
| Nando's        | Brixton Rd.    | 4.0    | 20    |

$$

  • Concatenação vertical - empilhar DataFrames um sobre o outro
Transformação de Dados com Polars

Concatenação vertical

reviews = pl.concat(                                )
Transformação de Dados com Polars

Concatenação vertical

reviews = pl.concat([central, south]                )
Transformação de Dados com Polars

Concatenação vertical

reviews = pl.concat([central, south], how="vertical")
shape: (7, 4)
| business         | location       | review | price |
| ---              | ---            | ---    | ---   |
| str              | str            | f64    | i64   |
|------------------|----------------|--------|-------|
| 7burgers         | Wakey Wakey    | 4.2    | 15    |
| Bang Bang Burger | Forest Rd.     | 3.8    | 12    |
| Costa Coffee     | City Point     | 4.5    | 8     |
| The Queens Head  | Denman St.     | 4.7    | 25    |
| Pizzeria Bella   | Bermondsey St. | 3.5    | 18    |
| Costa Coffee     | Waterloo       | 4.1    | 8     |
| Nando's          | Brixton Rd.    | 4.0    | 20    |
Transformação de Dados com Polars

Concatenação vertical

reviews = pl.read_csv("restaurants*.csv")
shape: (7, 4)
| business         | location       | review | price |
| ---              | ---            | ---    | ---   |
| str              | str            | f64    | i64   |
|------------------|----------------|--------|-------|
| 7burgers         | Wakey Wakey    | 4.2    | 15    |
| Bang Bang Burger | Forest Rd.     | 3.8    | 12    |
| Costa Coffee     | City Point     | 4.5    | 8     |
| The Queens Head  | Denman St.     | 4.7    | 25    |
| Pizzeria Bella   | Bermondsey St. | 3.5    | 18    |
| Costa Coffee     | Waterloo       | 4.1    | 8     |
| Nando's          | Brixton Rd.    | 4.0    | 20    |
Transformação de Dados com Polars

Um terceiro lote com dados ausentes

north = pl.read_csv("north.csv")
shape: (2, 3)
| business      | location      | review |
| ---           | ---           | ---    |
| str           | str           | f64    |
|-----------    |---------------|--------|
| Pig & Butcher | Liverpool Rd. | 3.2    |
| The Castle    | Angle         | 4.4    |
Transformação de Dados com Polars

Concatenação vertical falha

pl.concat([central, south, north], how="vertical")
ShapeError: unable to append to a DataFrame of width 4 with a DataFrame of width 3
Transformação de Dados com Polars

Concatenação diagonal

pl.concat([central, south, north], how="diagonal")
Transformação de Dados com Polars

Concatenação diagonal

pl.concat([central, south, north], how="diagonal")
shape: (9, 4)
| business         | location            | review | price |
| ---              | ---                 | ---    | ---   |
| str              | str                 | f64    | i64   |
|------------------|---------------------|--------|-------|
| 7burgers         | Wakey Wakey         | 4.2    | 15    |
| ...              | ...                 | ...    | ...   |
| Nando's          | Brixton Rd.         | 4.0    | 20    |
| Pig & Butcher    | Liverpool Rd.       | 3.2    | null  |
| The Castle       | Angle               | 4.4    | null  |
Transformação de Dados com Polars

Concatenação horizontal

cuisine = pl.read_csv("cuisine.csv")
shape: (7, 1)
| cuisine  |
| ---      |
| str      |
|----------|
| burgers  |
| burgers  |
| coffee   |
| ...      |
| chicken  |
  • Concatenação horizontal - colocar DataFrames lado a lado
Transformação de Dados com Polars

Concatenação horizontal

pl.concat([reviews, cuisine], how="horizontal")
shape: (7, 5)
| business         | location       | review | price | cuisine  |
| ---              | ---            | ---    | ---   | ---      |
| str              | str            | f64    | i64   | str      |
|------------------|----------------|--------|-------|----------|
| 7burgers         | Wakey Wakey    | 4.2    | 15    | burgers  |
| Bang Bang Burger | Forest Rd.     | 3.8    | 12    | burgers  |
| Costa Coffee     | City Point     | 4.5    | 8     | coffee   |
| The Queens Head  | Denman St.     | 4.7    | 25    | pub_food |
| Pizzeria Bella   | Bermondsey St. | 3.5    | 18    | pizza    |
| Costa Coffee     | Waterloo       | 4.1    | 8     | coffee   |
| Nando's          | Brixton Rd.    | 4.0    | 20    | chicken  |
Transformação de Dados com Polars

Acrescentando com extend

new_listing = pl.DataFrame({
    "business": ["Wagamama"],
    "location": ["Soho"],
    "review": [4.3],
    "price": [16]
})
shape: (1, 4)
| business         | location     | review | price |
| ---              | ---          | ---    | ---   |
| str              | str          | f64    | i64   |
|------------------|--------------|--------|-------|
| Wagamama         | Soho         | 4.3    | 16    |
Transformação de Dados com Polars

Acrescentando com extend

reviews.extend(new_listing)
shape: (8, 4)
| business         | location       | review | price |
| ---              | ---            | ---    | ---   |
| str              | str            | f64    | i64   |
|------------------|----------------|--------|-------|
| 7burgers         | Wakey Wakey    | 4.2    | 15    |
| ...              | ...            | ...    | ...   |
| Nando's          | Brixton Rd.    | 4.0    | 20    |
| Wagamama         | Soho           | 4.3    | 16    |
Transformação de Dados com Polars

Vamos praticar!

Transformação de Dados com Polars

Preparing Video For Download...