Categorical और Enum dtypes का उपयोग

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Liam Brannigan

Data Scientist & Polars Contributor

दोहराई गई स्ट्रिंग्स को एन्कोड करना

इवेंट टाइटल कॉलम और एरिया कॉलम वाला टेबल आरेख, जिसमें स्ट्रिंग्स दोहराई गई हैं.

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

दोहराई गई स्ट्रिंग्स को एन्कोड करना

इवेंट टाइटल कॉलम और एरिया कॉलम वाला टेबल आरेख, जहाँ स्ट्रिंग्स को इंटीजर से एन्कोड किया गया है.

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

दोहराए लेबल वाला डेटासेट

events = pl.read_parquet("chicago_events.parquet")
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

दोहराए लेबल वाला डेटासेट

events["area"].value_counts(sort=True).head(5)
shape: (5, 2)
| area          | count |
| ---           | ---   |
| str           | u32   |
|-------------  |-------|
| Loop          | 35982 |
| West Loop     | 27432 |
| Andersonville | 24660 |
| Downtown      | 24320 |
| Pullman       | 21985 |
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Categorical कॉलम बनाना

events_cat = events.with_columns(
    pl.col("area").cast(pl.Categorical)
)
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Categorical कॉलम बनाना

events_cat.select("event_title","area").head()
shape: (5, 2)
| event_title        | area          |
| ---                | ---           |
| str                | cat           |
|--------------------|---------------|
| Folk Festival      | Andersonville |
| Fireworks Night    | Downtown      |
| Greektown Market   | West Side     |
| Rail History Day   | Pullman       |
| Grant Park Concert | Loop          |
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Categorical कॉलम बनाना

events_cat.select("event_title","area").with_columns(
    pl.col("area").to_physical().alias("physical")
).head(3)
shape: (3, 3)
| event_title        | area          | physical |
| ---                | ---           | ---      |
| str                | cat           | u32      |
|--------------------|---------------|----------|
| Folk Festival      | Andersonville | 0        |
| Fireworks Night    | Downtown      | 1        |
| Greektown Market   | West Side     | 2        |
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Categorical expression का उपयोग

events_cat.select("event_title","area",
    pl.col("area").cat.starts_with("West").alias("westside"),
)
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Categorical expression का उपयोग

events_cat.select("event_title","area",
    pl.col("area").cat.starts_with("West").alias("westside"),
).filter(pl.col("westside")).head(2)
shape: (2, 3)
| event_title             | area      | westside |
| ---                     | ---       | ---      |
| str                     | cat       | bool     |
|-------------------------|-----------|----------|
| Greektown Market        | West Side | true     |
| West Loop Chef Showcase | West Loop | true     |
  • Other string ops → दोबारा String में cast करें
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Categorical और Enum

इवेंट टाइटल कॉलम और एरिया कॉलम वाला टेबल आरेख, जहाँ स्ट्रिंग्स को इंटीजर से एन्कोड किया गया है.

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Enum कॉलम बनाना

area_enum = pl.Enum([
    "Albany Park",
    "Andersonville",
    ...
    "West Loop",
    "West Side",
    "Wicker Park",
])
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Enum कॉलम बनाना

events_enum = events.with_columns(
    pl.col("area").cast(area_enum)
)
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Enum कॉलम बनाना

events_enum.select("event_title", "area").head()
shape: (5, 2)
| event_title                  | area           |
| ---                          | ---            |
| str                          | enum           |
|------------------------------|----------------|
| Greektown Market             | West Side      |
| Folk Festival                | Andersonville  |
| West Loop Chef Showcase      | West Loop      |
| Rail History Day             | Pullman        |
| Fireworks Night              | Downtown       |
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Enum dtype जाँचना

events_enum.schema["area"]
Enum(categories=['Albany Park', 'Andersonville', 'Chinatown', 'Downtown', ...])
  • स्थिर शब्द-संग्रह के लिए Enum
  • परिवर्तनीय शब्द-संग्रह के लिए Categorical
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Enum मेमोरी दक्षता

events_enum.select("event_title","area").with_columns(
    pl.col("area").to_physical().alias("physical")
).head(3)
shape: (3, 3)
| event_title        | area          | physical |
| ---                | ---           | ---      |
| str                | enum          | u8       |
|--------------------|---------------|----------|
| Folk Festival      | Andersonville | 1        |
| Fireworks Night    | Downtown      | 3        |
| Greektown Market   | West Side     | 16       |
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

अभ्यास करते हैं!

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Preparing Video For Download...