Python Pandas - Vergleich mit SQL
Da viele potenzielle Pandas-Benutzer mit SQL vertraut sind, soll diese Seite einige Beispiele dafür enthalten, wie verschiedene SQL-Vorgänge mit Pandas ausgeführt werden können.
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()
Es ist output ist wie folgt -
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
WÄHLEN
In SQL erfolgt die Auswahl mithilfe einer durch Kommas getrennten Liste der von Ihnen ausgewählten Spalten (oder eines *, um alle Spalten auszuwählen).
SELECT total_bill, tip, smoker, time
FROM tips
LIMIT 5;
Bei Pandas erfolgt die Spaltenauswahl durch Übergeben einer Liste von Spaltennamen an Ihren DataFrame.
tips[['total_bill', 'tip', 'smoker', 'time']].head(5)
Lassen Sie uns das vollständige Programm überprüfen -
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)
Es ist output ist wie folgt -
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
Wenn Sie den DataFrame ohne die Liste der Spaltennamen aufrufen, werden alle Spalten angezeigt (ähnlich wie bei SQL *).
WO
Das Filtern in SQL erfolgt über eine WHERE-Klausel.
SELECT * FROM tips WHERE time = 'Dinner' LIMIT 5;
DataFrames können auf verschiedene Arten gefiltert werden. Am intuitivsten ist die Verwendung der Booleschen Indizierung.
tips[tips['time'] == 'Dinner'].head(5)
Lassen Sie uns das vollständige Programm überprüfen -
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)
Es ist output ist wie folgt -
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
Die obige Anweisung übergibt eine Reihe von True / False-Objekten an den DataFrame und gibt alle Zeilen mit True zurück.
Gruppiere nach
Diese Operation ruft die Anzahl der Datensätze in jeder Gruppe in einem Datensatz ab. Zum Beispiel eine Abfrage, die uns die Anzahl der Tipps abruft, die das Geschlecht hinterlassen hat -
SELECT sex, count(*)
FROM tips
GROUP BY sex;
Das Pandas-Äquivalent wäre -
tips.groupby('sex').size()
Lassen Sie uns das vollständige Programm überprüfen -
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()
Es ist output ist wie folgt -
sex
Female 87
Male 157
dtype: int64
Top N Reihen
SQL gibt das zurück top n rows mit LIMIT - -
SELECT * FROM tips
LIMIT 5 ;
Das Pandas-Äquivalent wäre -
tips.head(5)
Schauen wir uns das vollständige Beispiel an -
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
Es ist output ist wie folgt -
smoker day time
0 No Sun Dinner
1 No Sun Dinner
2 No Sun Dinner
3 No Sun Dinner
4 No Sun Dinner
Dies sind die wenigen grundlegenden Operationen, die wir verglichen haben und die wir in den vorherigen Kapiteln der Pandas-Bibliothek gelernt haben.