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.