Python Pandas - Perbandingan dengan SQL

Karena banyak calon pengguna Pandas sudah terbiasa dengan SQL, halaman ini dimaksudkan untuk memberikan beberapa contoh bagaimana berbagai operasi SQL dapat dilakukan menggunakan panda.

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()

Nya output adalah sebagai berikut -

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

PILIH

Di SQL, pemilihan dilakukan menggunakan daftar kolom yang dipisahkan koma yang Anda pilih (atau * untuk memilih semua kolom) -

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

Dengan Pandas, pemilihan kolom dilakukan dengan meneruskan daftar nama kolom ke DataFrame Anda -

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

Mari kita periksa program lengkapnya -

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)

Nya output adalah sebagai berikut -

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

Memanggil DataFrame tanpa daftar nama kolom akan menampilkan semua kolom (mirip dengan * SQL).

DIMANA

Pemfilteran dalam SQL dilakukan melalui klausa WHERE.

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

DataFrames dapat difilter dengan berbagai cara; yang paling intuitif adalah menggunakan pengindeksan Boolean.

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

Mari kita periksa program lengkapnya -

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)

Nya output adalah sebagai berikut -

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

Pernyataan di atas meneruskan serangkaian objek True / False ke DataFrame, mengembalikan semua baris dengan True.

GroupBy

Operasi ini mengambil jumlah record di setiap grup di seluruh set data. Misalnya, kueri yang memberi kami jumlah tip yang ditinggalkan berdasarkan jenis kelamin -

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

Persamaan Pandas adalah -

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

Mari kita periksa program lengkapnya -

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()

Nya output adalah sebagai berikut -

sex
Female   87
Male    157
dtype: int64

N baris teratas

SQL mengembalikan top n rows menggunakan LIMIT -

SELECT * FROM tips
LIMIT 5 ;

Persamaan Pandas adalah -

tips.head(5)

Mari kita periksa contoh lengkapnya -

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

Nya output adalah sebagai berikut -

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

Ini adalah beberapa operasi dasar yang kami bandingkan, yang telah kami pelajari, di bab-bab sebelumnya dari Perpustakaan Pandas.