Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Фільтрація та Вибірка Даних за Допомогою Python | Робота з Даними
Databricks: Основи для Початківців

Фільтрація та Вибірка Даних за Допомогою Python

Свайпніть щоб показати меню

Note
Визначення

Вибірка та фільтрація — це найпоширеніші операції при обробці даних. Вибірка дозволяє обрати конкретні стовпці, які вас цікавлять, а фільтрація дає змогу звузити вибірку рядків на основі певних критеріїв або умов.

У більшості реальних сценаріїв немає потреби працювати з кожним стовпцем або рядком у наборі даних. Великі таблиці можуть містити сотні стовпців і мільйони рядків, більшість з яких можуть бути неактуальними для вашого аналізу. У цьому розділі ви дізнаєтеся, як "виділити" саме ті дані, які вам потрібні, використовуючи методи select() та filter().

Вибірка конкретних стовпців

Метод select() дозволяє створити новий DataFrame, який містить лише обрані вами стовпці. Це зменшує обсяг пам'яті, яку використовує ваш кластер, і робить результати значно зручнішими для перегляду.

# Select only two specific columns
selected_df = df.select("carat", "price")

display(selected_df)

Зверніть увагу, що Spark не змінює оригінальний df. Натомість створюється новий датафрейм з назвою selected_df. Якщо потрібно вибрати всі стовпці, крім одного, або виконати обчислення під час вибору, використовується більш складний синтаксис, але для базових завдань стандартним підходом є передача назв стовпців як рядків.

Фільтрація рядків за умовами

Метод filter() (або його псевдонім where()) виконує роль сита для ваших даних. Ви задаєте умову, і Spark залишає лише ті рядки, для яких ця умова виконується.

# Filter for rows where the carat is '0.23'
filtered_df = df.filter(df.carat == 0.23)

display(filtered_df)

Можна використовувати стандартні оператори порівняння, такі як == (дорівнює), != (не дорівнює), > (більше ніж) та < (менше ніж).

Комбінування декількох фільтрів

Часто виникає потреба застосувати більше ніж одне правило одночасно. Для цього можна об'єднувати фільтри або використовувати логічні оператори "And" (&) та "Or" (|).

good_carat_df = df.filter((df.carat == 0.23) & (df.cut == "Good"))

display(good_carat_df)
Note
Примітка

Під час поєднання фільтрів за допомогою & або | завжди обгортайте кожну окрему умову в дужки. Це гарантує, що Spark правильно обробить логіку.

Вибірка та фільтрація в одному кроці

Оскільки Spark використовує "fluent" API, ці команди можна об'єднувати в один рядок коду. Це дуже поширений підхід у професійній інженерії даних:

# Select specific diamonds by `price > 500`
high_profit_df = df.select("carat", "price").filter(df.price > 500)

display(high_profit_df)

Перевірка результатів

Після кожної вибірки або фільтрації корисно виконувати count(). Якщо ви починаєте з 10 000 рядків, а після фільтрації отримуєте 0, це може означати, що ваша умова фільтрації занадто сувора або містить помилку у рядкових значеннях.

1. Який метод слід використати, якщо потрібно вибрати лише 3 стовпці з таблиці, що містить 50 стовпців?

2. У Python, який правильний спосіб відфільтрувати рядки, де "Total_Profit" більше за 1000?

question mark

Який метод слід використати, якщо потрібно вибрати лише 3 стовпці з таблиці, що містить 50 стовпців?

Виберіть правильну відповідь

question mark

У Python, який правильний спосіб відфільтрувати рядки, де "Total_Profit" більше за 1000?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 4. Розділ 4
some-alt