Команди SQL та їхні еквіваленти в Pandas: всебічний посібник

pic

Аналіз даних є важливою складовою багатьох галузей, і SQL (Structured Query Language) часто є мовою вибору для взаємодії з реляційними базами даних.

Однак у сфері науки про дані та програмування на Python бібліотека Pandas є потужним інструментом, який надає структури даних та функції, що дозволяють зручно виконувати маніпуляції та аналіз даних.

Ця стаття розгляне SQL запити та їхні еквіваленти в Pandas, використовуючи гіпотетичну таблицю Customer, щоб продемонструвати перетворення між SQL запитами та операціями з DataFrame у Pandas.

Приклад таблиці Customer

Для практичності порівняння припустимо, що у нас є таблиця Customer з такою структурою:

pic

Ми створимо цю таблицю в SQL, а потім завантажимо її як DataFrame у Pandas для виконання подібних операцій.

-- SQL скрипт для створення та заповнення таблиці Customer  
CREATE TABLE Customer (  
 CustomerID INT PRIMARY KEY,  
 Name VARCHAR(100),  
 Country VARCHAR(50),  
 Age INT,  
 Orders INT  
);
INSERT INTO Customer (CustomerID, Name, Country, Age, Orders) VALUES  
(1, 'Alice Smith', 'USA', 34, 5),  
(2, 'Bob Johnson', 'Canada', 45, 3),  
(3, 'Carol Davis', 'UK', 29, 8),  
(4, 'David Brown', 'Australia', 40, 2),  
(5, 'Emma Wilson', 'USA', 31, 6);

У Pandas ми завантажимо ці дані наступним чином:

import pandas as pd
# Створення DataFrame для Customer  
data = {  
 'CustomerID': [1, 2, 3, 4, 5],  
 'Name': ['Alice Smith', 'Bob Johnson', 'Carol Davis', 'David Brown', 'Emma Wilson'],  
 'Country': ['USA', 'Canada', 'UK', 'Australia', 'USA'],  
 'Age': [34, 45, 29, 40, 31],  
 'Orders': [5, 3, 8, 2, 6]  
}customer_df = pd.DataFrame(data)

1. Вибір всіх записів

SQL запит:

SELECT * FROM Customer;

Еквівалент у Pandas:

customer_df

2. Фільтрація записів

SQL запит:

SELECT * FROM Customer WHERE Country = 'USA';

Еквівалент у Pandas:

customer_df[customer_df['Country'] == 'USA']

3. Сортування записів

SQL запит:

SELECT * FROM Customer ORDER BY Age DESC;

Еквівалент у Pandas:

customer_df.sort_values(by='Age', ascending=False)

4. Агрегація даних

SQL запит:

SELECT Country, COUNT(*) AS CustomerCount FROM Customer GROUP BY Country;

Еквівалент у Pandas:

customer_df.groupby('Country').size().reset_index(name='CustomerCount')

5. Оновлення запису

SQL запит:

UPDATE Customer SET Orders = 10 WHERE CustomerID = 1;

Еквівалент у Pandas:

customer_df.loc[customer_df['CustomerID'] == 1, 'Orders'] = 10

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

SQL запит:

SELECT Name, Country FROM Customer;

Еквівалент у Pandas:

customer_df[['Name', 'Country']]

7. Підрахунок рядків

SQL запит:

SELECT COUNT(*) FROM Customer;

Еквівалент у Pandas:

customer_df.shape[0]

8. Обчислення середнього віку

SQL запит:

SELECT AVG(Age) FROM Customer;

Еквівалент у Pandas:

customer_df['Age'].mean()

9. Видалення запису

SQL запит:

DELETE FROM Customer WHERE CustomerID = 4;

Еквівалент у Pandas:

customer_df = customer_df[customer_df['CustomerID'] != 4]

10. Перейменування стовпця

SQL запит:

ALTER TABLE Customer RENAME COLUMN Name TO FullName;

Еквівалент у Pandas:

customer_df.rename(columns={'Name': 'FullName'}, inplace=True)

Цей посібник надає чітке співвідношення між SQL запитами та операціями з DataFrame в Pandas, використовуючи реальні приклади. І SQL, і Pandas мають свої сильні сторони, і розуміння їх подібностей допоможе з'єднати управління базами даних та аналіз даних.

Залишайтеся дисциплінованими, залишайтеся цікавими і нехай дані ведуть вас.

Дякую за прочитання.

Не забудьте підписатися та слідкувати за мною для нових цікавих статей.
Якщо ви хочете обговорити це детальніше, не соромтеся зв'язатися зі мною через мої соціальні мережі за посиланнями нижче.

Перекладено з: SQL Commands and Their Equivalents in Pandas: A Comprehensive Guide

Leave a Reply

Your email address will not be published. Required fields are marked *