
Python Pandas და SQL მონაცემთა ანალიზის, მანქანური სწავლებისა და ETL მილსადენების საფუძველს ქმნიან. დიდი DataFrames-ის დამუშავება და მონაცემთა ბაზაში რთული მოთხოვნების გაშვება მოითხოვს ეფექტურობას კოდის სიცხადის შელახვის გარეშე.
SQL მოთხოვნების ჩასმა Pandas-ში სამუშაო პროცესები აჩქარებს ფილტრაციას, აგრეგაციას და შეერთებებს, Python-ის მოქნილობასა და შედეგების თანმიმდევრულობას ინარჩუნებს.
ეს სახელმძღვანელო მოიცავს pandasql-ის დაყენებას და Pandas-ის მშობლიურ SQL მეთოდებს, წარმოგიდგენთ რეალურ სამყაროში DataFrame-ის შეკითხვის მაგალითებს და ასახავს ოპტიმიზაციის საუკეთესო პრაქტიკას. ანალიტიკის სამუშაო ნაკადები და ანგარიში.
რატომ გავაერთიანოთ Python Pandas და SQL?
პანდა არის Python-ის ბიბლიოთეკა, რომელიც შექმნილია მონაცემთა მანიპულირებისა და ანალიზისთვის. ის გამოიყენება ცხრილური მონაცემების დაჭრისა და ტრანსფორმაციისთვის. SQL (Structured Query Language), მეორეს მხრივ, წარმოადგენს ოქროს სტანდარტს რელაციური მონაცემთა ბაზების შეკითხვისთვის - მაგალითად, MySQL, PostgreSQL, SQLite და სხვა.

აი, რატომ არის ამ ორის შერწყმა თამაშის წესების შეცვლა:
ხიდი: pandasql-ისა და Native Pandas SQL-ის ინტეგრაცია
pandasql საშუალებას იძლევა SQL მოთხოვნების შესრულება პირდაპირ Pandas DataFrames-ზე, რაც გამორიცხავს ამის საჭიროებას. ექსპორტის მონაცემები, ცალკე მონაცემთა ბაზის უზრუნველყოფა ან დამატებითი API-ების გამოყენება; მომხმარებლები უბრალოდ წერენ SQL ოპერატორებს, იღებენ შედეგად მიღებულ DataFrame-ს და შეუფერხებლად აგრძელებენ მუშაობას.
pandasql-ის ინსტალაცია
პითონი
pip install pandasql
ახლა თქვენ მზად ხართ, პროფესიონალივით შეურიოთ SQL და Pandas.
დაწყება: ძირითადი გამოყენება
მოდით განვიხილოთ მარტივი მაგალითი. დავუშვათ, რომ გაქვთ DataFrame:
პითონი
import pandas as pd
import pandasql as psql
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
query = "SELECT * FROM df"
result = psql.sqldf(query, locals())
print(result)
ეს აბრუნებს სრულ DataFrame-ს, ისევე როგორც df.head() მაგრამ SQL სინტაქსის გამოყენებით. ახლა შეგიძლიათ გაფილტროთ, დააჯგუფოთ და გააერთიანოთ ისევე, როგორც ამას მონაცემთა ბაზაში გააკეთებდით.
რეალური მონაცემების ანალიზი Pandas-ისა და SQL-ის გამოყენებით
მოდით, პრაქტიკული მონაცემთა ნაკრებით ავიდეთ დონეზე. წარმოიდგინეთ, რომ აანალიზებთ ავტომობილების გაყიდვების მონაცემთა ნაკრებს სვეტებით, როგორიცაა brand, model, year, price, mileage, და სხვა.
მონაცემების ჩატვირთვა და შესწავლა
პითონი
import pandas as pd
import pandasql as ps
car_data = pd.read_csv("cars_datasets.csv")
print(car_data.head())
print(car_data.info())
print(car_data.isnull().sum())
თქვენ ნახავთ სვეტების სახელებს, მონაცემთა ტიპებიდა ნებისმიერი დაკარგული მნიშვნელობა - აუცილებელია მონაცემთა ხარისხიანი ანალიზისთვის.
SQL მოთხოვნების გაშვება DataFrames-ზე
ტოპ 10 ყველაზე ძვირადღირებული მანქანა
პითონი
def q(query):
return ps.sqldf(query, {'car_data': car_data})
q("""
SELECT brand, model, year, price
FROM car_data
ORDER BY price DESC
LIMIT 10
""")
ბრენდის მიხედვით საშუალო ფასი
პითონი
q("""
SELECT brand, ROUND(AVG(price), 2) AS avg_price
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
""")
2015 წლის შემდეგ წარმოებული მანქანები
პითონი
q("""
SELECT *
FROM car_data
WHERE year > 2015
ORDER BY year DESC
""")
ბრენდის მიხედვით ავტომობილების ჯამური რაოდენობა
პითონი
q("""
SELECT brand, COUNT(*) as total_listed
FROM car_data
GROUP BY brand
ORDER BY total_listed DESC
LIMIT 5
""")
დაჯგუფება პირობით
პითონი
q("""
SELECT condition, ROUND(AVG(price), 2) AS avg_price, COUNT(*) as listings
FROM car_data
GROUP BY condition
ORDER BY avg_price DESC
""")
საშუალო გარბენი და ფასი ბრენდის მიხედვით
პითონი
q("""
SELECT brand,
ROUND(AVG(mileage), 2) AS avg_mileage,
ROUND(AVG(price), 2) AS avg_price,
COUNT(*) AS total_listings
FROM car_data
GROUP BY brand
ORDER BY avg_price DESC
LIMIT 10
""")
ფასი მილზე
პითონი
q("""
SELECT brand,
ROUND(AVG(price/mileage), 4) AS price_per_mile,
COUNT(*) AS total
FROM car_data
WHERE mileage > 0
GROUP BY brand
ORDER BY price_per_mile DESC
LIMIT 10
""")
მონაცემების ვიზუალიზაცია შტატების მიხედვით
ინტერაქტიული დაფებისთვის შეგიძლიათ ვიჯეტების და Plotly-ის გამოყენებაც კი:
პითონი
import plotly.express as px
import ipywidgets as widgets
state_dropdown = widgets.Dropdown(
options=car_data['state'].unique().tolist(),
value=car_data['state'].unique()[0],
description='Select State:',
layout=widgets.Layout(width='50%')
)
def plot_avg_price_state(state_selected):
query = f"""
SELECT brand, AVG(price) AS avg_price
FROM car_data
WHERE state = '{state_selected}'
GROUP BY brand
ORDER BY avg_price DESC
"""
result = q(query)
fig = px.bar(result, x='brand', y='avg_price', color='brand',
title=f"Average Car Price in {state_selected}")
fig.show()
widgets.interact(plot_avg_price_state, state_selected=state_dropdown)
ეს თქვენს ანალიზს ინტერაქტიულს და ვიზუალურად მიმზიდველს ხდის - იდეალურია დაფებისთვის ან პრეზენტაციები.
Pandasql-ის მიღმა: Native Pandas SQL ოპერაციები
მიუხედავად იმისა, რომ pandasql საუკეთესოა სწრაფი SQL სტილის მოთხოვნებისთვის, Pandas ასევე მხარს უჭერს SQL-ის პირდაპირ ინტეგრაციას რეალურ მონაცემთა ბაზებთან მუშაობისთვის (როგორიცაა SQLite, PostgreSQL, MySQL):
მაგალითი: SQL-ში კითხვა და წერა
პითონი
import pandas as pd
import sqlite3
# Connect to SQLite database
conn = sqlite3.connect(":memory:")
# Create a table and insert data
conn.execute("CREATE TABLE Students (id INTEGER, Name TEXT, Marks REAL, Age INTEGER)")
conn.execute("INSERT INTO Students VALUES (1, 'Kiran', 80, 16), (2, 'Priya', 60, 14), (3, 'Naveen', 82, 15)")
# Read from SQL
df = pd.read_sql("SELECT * FROM Students", conn)
print(df)
# Write to SQL
df.to_sql("Students_Copy", conn, if_exists="replace", index=False)
ეს მიდგომა იდეალურია ETL მილსადენებისთვის, ანგარიშგებისა და წარმოების მონაცემების სამუშაო პროცესებისთვის.
გაფართოებული გამოყენების შემთხვევები: ETL, მანქანური სწავლება და დაფები

SQL-ისა და Pandas-ის გაერთიანება მხოლოდ შეკითხვების დასმას არ ეხება - ეს უფრო ჭკვიანი სამუშაო პროცესების შექმნას ეხება:
Pandasql vs. Pure Pandas: როდის და რა გამოვიყენოთ?
| მხატვრული | pandasql (SQL) | სუფთა პანდები |
|---|---|---|
| სინტაქსი | SQL (ბევრისთვის ნაცნობი) | პითონი (მოქნილი, ძლიერი) |
| Readability | მაღალი კომპლექსური მოთხოვნებისთვის | შეუძლია ვრცელი იყოს |
| Performance | ნელია ძალიან დიდ მონაცემთა ნაკრებებზე | უფრო სწრაფი, პითონისთვის ოპტიმიზირებული |
| შეერთებები/დაჯგუფება | ძალიან ინტუიციური | მეტი კოდი, მაგრამ მეტი ვარიანტი |
| ინტეგრაციის | შესანიშნავია სწრაფი ანალიზისთვის | საუკეთესოა წარმოების სამუშაო პროცესებისთვის |
შეზღუდვები და საუკეთესო პრაქტიკა
საბოლოო ფიქრები
Python Pandas-ისა და SQL-ის ინტეგრირებული გამოყენება მონაცემთა ანალიტიკოსებისთვის აუცილებელ კომპეტენციას წარმოადგენს, AI ინჟინრები და მკვლევარი სპეციალისტები. ეს მეთოდოლოგია რელაციური მონაცემთა ბაზის მოთხოვნების შესრულებას ადარებს პანდას ძლიერი DataFrame ოპერაციების, რაც აუმჯობესებს როგორც ეფექტურობას, ასევე კოდის სიცხადეს. Pandas-ის მშობლიურ SQL ინტეგრაციასთან ერთად, ისეთი ინსტრუმენტების გამოყენებით, როგორიცაა pandasql, გუნდებს შეუძლიათ ერთიან გარემოში განახორციელონ მონაცემთა ძიებითი ანალიზი (EDA), ძლიერი ETL სამუშაო პროცესები და მანქანური სწავლების მილსადენები.
დასამახსოვრებელი სტატისტიკა:
ამ ორმაგი მიდგომის გამოყენება უზრუნველყოფს მასშტაბირებად, მდგრად ანალიტიკურ პროცესებს და გუნდებს გრძელვადიანი წარმატებისთვის განათავსებს.
გინდა შეინარჩუნო შენი AI და მონაცემთა უნარები მკვეთრია?
გაეცანით მეტ სახელმძღვანელოს LLM-ზე, სწრაფი ინჟინერიის, RAG-ის და AI აგენტის სამუშაო პროცესები. დაელოდეთ მეტი სახელმძღვანელოსა და პრაქტიკული მაგალითებისთვის AI MOJO

