Wenn Sie versuchen, einen großen DataFrame in Pandas zu verstehen, müssen Sie ihn möglicherweise nach Spalten und Zeilen unterteilen. In diesem Tutorial zeigen wir die häufigsten Anwendungsfälle der Spaltenpartitionierung Ihres DataFrame.
Wir beginnen mit der Einrichtung unseres Beispiel-DataFrame, indem wir den folgenden Python-Code in unserer bevorzugten Umgebung ausführen (der Einfachheit halber verwende ich Anaconda und Jupyter Lab).
import pandas as pd # import the pandas library
languages = ({"language": [ "Python", "C-Sharp", "Javascript","PHP"] ,
"avg_difficulty_level": [3, 2, 2, 1],
"avg_salary": [120, 100, 120, 80],
"applications": [10,15,14,20]})
# Now let's convert our dict to a DataFrame
languages = pd.DataFrame.from_dict(languages)
Lassen Sie uns nun mit der Methode head() in die ersten Zeilen unseres Datenrahmens schauen.
languages.head()
Wie Sie sehen können, ist dies ein ziemlich einfacher DataFrame, den wir in diesem Beitrag als Beispiel verwenden werden:
| |
Sprache |
avg_difficulty_level |
avg_salary |
Anwendungen |
| 0 |
Python |
3 |
120 |
10 |
| 1 |
Cis |
2 |
100 |
fünfzehn |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Filtern einer einzelnen Spalte
Wir beginnen mit dem einfachsten Fall, der darin besteht, eine Spalte aus unserem Datensatz zu unterteilen. Durch Ausführen des folgenden Befehls wird ein Series-Objekt erstellt:
Nach Name / Label
languages["language"]
Die Ausgabe ist eine Serie:
0 Python
1 Cis
2 Javascript
3PHP
Name: Sprache, Dtype: Objekt
type(languages["language"])
pandas.core.series.Series
Nach Index
Der folgende Befehl gibt auch eine Reihe zurück, die die erste Spalte enthält
languages.iloc[:,0]
Mehrere Spalten auswählen
Namentlich
Beim Übergeben einer Liste von Spalten gibt Pandas einen DataFrame zurück, der einen Teil der Daten enthält.
languages[["language", "applications"]]
| |
Sprache |
Anwendungen |
| 0 |
Python |
10 |
| 1 |
Cis |
fünfzehn |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Nach Label (mit Lok)
df.loc[:,["language","applications"]]
Das Ergebnis wird ähnlich sein.
Nach Index
Lassen Sie uns nun mehrere Spalten mithilfe des Index abrufen:
languages.iloc[: ,[0,3]]
| |
Sprache |
Anwendungen |
| 0 |
Python |
10 |
| 1 |
Cis |
fünfzehn |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Nach Zustand
In diesem Fall zeigen wir nur die Spalten an, deren Name mit einem bestimmten Ausdruck übereinstimmt. Wir verwenden die recht praktische Filtermethode :
languages.filter(axis = 1, like="avg")
Anmerkungen:
- wir können auch nach einem bestimmten regulären Ausdruck (Regex) filtern.
- Wir können den Parameter axis=0 anwenden, um nach einem bestimmten Zeilenwert zu filtern.
Filtern Sie bestimmte Zeilen nach Bedingung
Hier ist eine ziemlich einfache Möglichkeit, den DataFrame entsprechend einem Zeilenwert zu unterteilen:
languages[(languages["applications"] > 15)]
Wir haben nur ein Ergebnis:
languages[(languages["applications"] > 15)]
| |
Sprache |
avg_difficulty_level |
avg_salary |
Anwendungen |
| 3 |
PHP |
1 |
80 |
20 |