Python Pandas - SQL ile Karşılaştırma

Pek çok potansiyel Pandas kullanıcısı SQL konusunda biraz bilgi sahibi olduğundan, bu sayfanın pandalar kullanılarak çeşitli SQL işlemlerinin nasıl gerçekleştirilebileceğine dair bazı örnekler sağlaması amaçlanmıştır.

import pandas as pd

url = 'https://raw.github.com/pandasdev/
pandas/master/pandas/tests/data/tips.csv'

tips=pd.read_csv(url)
print tips.head()

Onun output aşağıdaki gibidir -

total_bill   tip      sex  smoker  day     time  size
0        16.99  1.01   Female      No  Sun  Dinner      2
1        10.34  1.66     Male      No  Sun  Dinner      3
2        21.01  3.50     Male      No  Sun  Dinner      3
3        23.68  3.31     Male      No  Sun  Dinner      2
4        24.59  3.61   Female      No  Sun  Dinner      4

SEÇ

SQL'de seçim, seçtiğiniz virgülle ayrılmış sütun listesi (veya tüm sütunları seçmek için *) kullanılarak yapılır -

SELECT total_bill, tip, smoker, time
FROM tips
LIMIT 5;

Pandalar ile sütun seçimi, DataFrame'inize bir sütun adları listesi iletilerek yapılır -

tips[['total_bill', 'tip', 'smoker', 'time']].head(5)

Tam programı kontrol edelim -

import pandas as pd

url = 'https://raw.github.com/pandasdev/
pandas/master/pandas/tests/data/tips.csv'
 
tips=pd.read_csv(url)
print tips[['total_bill', 'tip', 'smoker', 'time']].head(5)

Onun output aşağıdaki gibidir -

total_bill   tip  smoker     time
0       16.99  1.01      No   Dinner
1       10.34  1.66      No   Dinner
2       21.01  3.50      No   Dinner
3       23.68  3.31      No   Dinner
4       24.59  3.61      No   Dinner

DataFrame'i sütun adları listesi olmadan çağırmak tüm sütunları gösterecektir (SQL’e benzer *).

NEREDE

SQL'de filtreleme bir WHERE cümlesiyle yapılır.

SELECT * FROM tips WHERE time = 'Dinner' LIMIT 5;

DataFrame'ler çeşitli yollarla filtrelenebilir; en sezgisel olanı Boolean indekslemeyi kullanmaktır.

tips[tips['time'] == 'Dinner'].head(5)

Tam programı kontrol edelim -

import pandas as pd

url = 'https://raw.github.com/pandasdev/
pandas/master/pandas/tests/data/tips.csv'

tips=pd.read_csv(url)
print tips[tips['time'] == 'Dinner'].head(5)

Onun output aşağıdaki gibidir -

total_bill   tip      sex  smoker  day    time  size
0       16.99  1.01   Female     No   Sun  Dinner    2
1       10.34  1.66     Male     No   Sun  Dinner    3
2       21.01  3.50     Male     No   Sun  Dinner    3
3       23.68  3.31     Male     No   Sun  Dinner    2
4       24.59  3.61   Female     No   Sun  Dinner    4

Yukarıdaki ifade, DataFrame'e bir Dizi Doğru / Yanlış nesneler geçirerek tüm satırları True ile döndürür.

GroupBy

Bu işlem, bir veri kümesi boyunca her gruptaki kayıtların sayısını getirir. Örneğin, bize cinsiyete göre bırakılan ipucu sayısını getiren bir sorgu -

SELECT sex, count(*)
FROM tips
GROUP BY sex;

Pandaların eşdeğeri -

tips.groupby('sex').size()

Tam programı kontrol edelim -

import pandas as pd

url = 'https://raw.github.com/pandasdev/
pandas/master/pandas/tests/data/tips.csv'

tips=pd.read_csv(url)
print tips.groupby('sex').size()

Onun output aşağıdaki gibidir -

sex
Female   87
Male    157
dtype: int64

İlk N satır

SQL, top n rows kullanma LIMIT -

SELECT * FROM tips
LIMIT 5 ;

Pandaların eşdeğeri -

tips.head(5)

Tam örneği kontrol edelim -

import pandas as pd

url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv'

tips=pd.read_csv(url)
tips = tips[['smoker', 'day', 'time']].head(5)
print tips

Onun output aşağıdaki gibidir -

smoker   day     time
0      No   Sun   Dinner
1      No   Sun   Dinner
2      No   Sun   Dinner
3      No   Sun   Dinner
4      No   Sun   Dinner

Bunlar, Pandas Kütüphanesinin önceki bölümlerinde öğrendiğimiz birkaç temel işlemdir.