Was ist Pandas?
- Pandas ist eine Python-Bibliothek, die für die Arbeit mit Datensätzen verwendet wird.
- Sie verfügt über Funktionen zum Analysieren, Bereinigen, Erkunden und Manipulieren von Daten.
- Der Name "Pandas" bezieht sich sowohl auf "Panel Data", als auch auf "Python Data Analysis" und wurde von Wes McKinney im Jahr 2008 entwickelt.
Warum Pandas?
- Pandas ermöglicht es uns, große Daten zu analysieren und Schlussfolgerungen auf Basis statistischer Theorien zu ziehen.
- Pandas kann unordentliche Datensätze bereinigen und sie lesbar und relevant machen.
- Relevante Daten sind in der Datenwissenschaft sehr wichtig.
Was kann Pandas tun?
Pandas gibt uns Antworten über die Daten. Zum Beispiel:
- Gibt es eine Korrelation zwischen zwei oder mehreren Spalten?
- Was ist der Durchschnittswert?
- Max-Wert?
- Minimaler Wert?
Pandas sind auch in der Lage, Zeilen zu löschen, die nicht relevant sind oder falsche Werte enthalten, wie leere oder NULL-Werte. Dies wird als Bereinigung der Daten bezeichnet.
Installation
Wenn du Python und PIP bereits auf einem System installiert hast, dann ist die Installation von Pandas sehr einfach.
Installiere es mit dem folgenden Befehl:
C:\Users\Dein Name>pip install pandas
Wenn dieser Befehl fehlschlägt, dann verwende eine Python-Distribution, die Pandas bereits installiert hat, wie z.B. Anaconda, Spyder etc.
Pandas importieren
Sobald Pandas installiert ist, importiere es in deine Anwendungen, indem du das Schlüsselwort import hinzufügst:
import pandas
Beispiel:
import pandas
meindatensatz = {
'auto': ["BMW", "Volvo", "Ford"],
'passings': [3, 7, 2]
}
meinevar = pandas.DataFrame(meindatensatz)
print(meinevar)
Pandas als pd
Pandas wird normalerweise unter dem Alias pd
importiert.
Lege beim Import einen Alias mit dem Schlüsselwort as an:
import pandas as pd
Jetzt kann das Pandas-Paket als pd anstelle von pandas bezeichnet werden.
Beispiel:
import pandas as pd
meindatensatz = {
'auto': ["BMW", "Volvo", "Ford"],
'passings': [3, 7, 2]
}
meinevar = pd.DataFrame(meindatensatz)
print(meinevar)
Was ist eine Serie?
Eine Pandas-Serie ist wie eine Spalte in einer Tabelle.
Sie ist ein eindimensionales Array, das Daten beliebigen Typs enthält.
Beispiel: (Erstellen einer einfachen Pandas-Serie aus einer Liste)
import pandas as pd
a = [1, 7, 2]
meinevar = pd.Series(a)
print(meinevar)
Labels
Wenn nichts anderes spezifiziert ist, werden die Werte mit ihrer Indexnummer beschriftet. Erster Wert hat Index 0, zweiter Wert hat Index 1 usw.
Diese Beschriftung kann verwendet werden, um auf einen bestimmten Wert zuzugreifen.
Beispiel:
import pandas as pd
a = [1, 7, 2]
meinevar = pd.Series(a)
print(meinevar[0])
Labels erstellen
Mit dem Argument index lassen sich eigene Labels benennen.
Beispiel (Eigene Labels) erstellen:
import pandas as pd
a = [1, 7, 2]
meinevar = pd.Series(a, index = ["x", "y", "z"])
print(meinevar)
Wenn Sie Labels erstellt haben, können Sie auf ein Element zugreifen, indem Sie sich auf das Label beziehen.
Beispiel:
import pandas as pd
a = [1, 7, 2]
meinevar = pd.Series(a, index = ["x", "y", "z"])
print(meinevar["y"])
Pandas DataFrames
Mit DataFrames kannst du tabellarische Daten in Zeilen mit Beobachtungen und Spalten mit Variablen speichern und manipulieren.
Es gibt mehrere Möglichkeiten, einen DataFrame zu erstellen. Eine Möglichkeit ist die Verwendung eines Wörterbuchs. Zum Beispiel:
dict = {"land": ["Brasilien", "Russland", "Indien", "China", "Südafrika"],
"hauptstadt": ["Brasilia", "Moskau", "Neu Dehli", "Peking", "Pretoria"],
"ort": [8.516, 17.10, 3.286, 9.597, 1.221],
"einwohnerzahl": [200.4, 143.5, 1252, 1357, 52.98] }
import pandas as pd
brics = pd.DataFrame(dict)
print(brics)
Wie du mit dem neuen brics DataFrame sehen kannst, hat Pandas für jedes Land einen Schlüssel mit den Zahlenwerten 0 bis 4 vergeben. Wenn du andere Indexwerte haben möchtest, z.B. den zweistelligen Ländercode, kannst du auch das einfach machen.
dict = {"land": ["Brasilien", "Russland", "Indien", "China", "Südafrika"],
"hauptstadt": ["Brasilia", "Moskau", "Neu Dehli", "Peking", "Pretoria"],
"ort": [8.516, 17.10, 3.286, 9.597, 1.221],
"einwohnerzahl": [200.4, 143.5, 1252, 1357, 52.98] }
import pandas as pd
brics = pd.DataFrame(dict)
# Index für brics einstellen
brics.index = ["BR", "RU", "IN", "CH", "SA"]
print(brics)
Eine andere Möglichkeit, einen DataFrame zu erstellen, ist das Importieren einer csv-Datei mit Pandas. Nun ist die csv autos.csv gespeichert und kann mit pd.read_csv importiert werden:
# importiert pandas als pd
import pandas as pd
# importiert die autos.csv-Daten: autos
autos = pd.read_csv('autos.csv')
# Autos ausgeben
print(autos)
Indizierung von DataFrames
Es gibt mehrere Möglichkeiten, einen Pandas DataFrame zu indizieren. Eine der einfachsten Möglichkeiten ist die Verwendung der eckigen Klammer-Notation.
Im folgenden Beispiel können eckige Klammern verwendet werden, um eine Spalte des DataFrames "Autos" auszuwählen. Du kannst entweder eine einzelne Klammer oder eine doppelte Klammer verwenden. Die einfache Klammer wird eine Pandas-Reihe ausgeben, während eine doppelte Klammer einen Pandas-DataFrame ausgeben wird.
dict = {"land": ["USA", "Australien", "Japan", "Indien", "Russland", "Marokko", "Ägypten"],
"autos_pro_hauptstadt": [809, 731, 588, 18, 200, 70, 45],
"fährt_rechts": [True, False, False, False, False, True, True] }
import pandas as pd
brics = pd.DataFrame(dict)
brics.index = ["US", "AUS", "JAP", "IN", "RU", "MOR", "EG"]
# Länderspalte als Pandas-Serie ausgeben
print(brics['autos_pro_hauptstadt'])
# Ausgeben der Länderspalte als Pandas DataFrame
print(brics[['autos_pro_hauptstadt']])
# DataFrame mit den Spalten land und fährt_rechts ausgeben
print(brics[['autos_pro_hauptstadt', 'land']])
Eckige Klammern können auch verwendet werden, um auf Beobachtungen (Zeilen) aus einem DataFrame zuzugreifen. Zum Beispiel:
dict = {"land": ["USA", "Australien", "Japan", "Indien", "Russland", "Marokko", "Ägypten"],
"autos_pro_hauptstadt": [809, 731, 588, 18, 200, 70, 45],
"fährt_rechts": [True, False, False, False, False, True, True] }
import pandas as pd
brics = pd.DataFrame(dict)
brics.index = ["US", "AUS", "JAP", "IN", "RU", "MOR", "EG"]
# Die ersten 4 Beobachtungen ausgeben
print(brics[0:4])
# Fünfte und sechste Beobachtung ausgeben
print(brics[4:6])
Du kannst auch loc
und iloc
verwenden, um so gut wie jede Datenauswahloperation durchzuführen. loc
ist bezeichnungsbasiert, das heißt, du musst Zeilen und Spalten basierend auf ihren Zeilen- und Spaltenbezeichnungen angeben. iloc
ist ganzzahlindexbasiert, d. h. du musst Zeilen und Spalten anhand ihres ganzzahligen Indexes angeben.
dict = {"land": ["USA", "Australien", "Japan", "Indien", "Russland", "Marokko", "Ägypten"],
"autos_pro_hauptstadt": [809, 731, 588, 18, 200, 70, 45],
"fährt_rechts": [True, False, False, False, False, True, True] }
import pandas as pd
brics = pd.DataFrame(dict)
brics.index = ["US", "AUS", "JAP", "IN", "RU", "MOR", "EG"]
# Beobachtung für Japan ausgeben
print(brics.iloc[2])
# Beobachtungen für Australien und Ägypten ausgeben
print(brics.loc[['AUS', 'EG']])