Lernen Sie die Grundlagen der Arbeit mit pandas DataFrames: die grundlegende Datenstruktur in pandas, einer leistungsstarken Bibliothek zur Datenmanipulation.

Wenn Sie mit der Datenanalyse in Python beginnen möchten, ist pandas eine der ersten Bibliotheken, mit der Sie arbeiten sollten. Vom Importieren von Daten aus verschiedenen Quellen wie CSV-Dateien und Datenbanken bis hin zum Umgang mit fehlenden Daten und deren Analyse, um Erkenntnisse zu gewinnen – mit pandas können Sie all das tun.

Um mit der Analyse von Daten mit Pandas zu beginnen, sollten Sie die grundlegende Datenstruktur in Pandas verstehen: Datenrahmen.

In diesem Lernprogramm lernen Sie die Grundlagen von Pandas Dataframes und gängige Methoden zur Erstellung von Dataframes kennen. Anschließend lernen Sie, wie Sie Zeilen und Spalten aus einem Datenrahmen auswählen, um Teilmengen von Daten abzurufen.

Für all dies und mehr, lassen Sie uns beginnen.

Installieren und Importieren von Pandas

Da Pandas eine Datenanalysebibliothek eines Drittanbieters ist, sollten Sie sie zunächst installieren. Es wird empfohlen, externe Pakete in einer virtuellen Umgebung für Ihr Projekt zu installieren.

Wenn Sie die Anaconda-Distribution von Python verwenden, können Sie conda für die Paketverwaltung nutzen.

conda installieren pandas

Sie können pandas auch mit pip installieren:

pip install pandas

die pandas Bibliothek benötigt NumPy als Abhängigkeit. Wenn NumPy also nicht bereits installiert ist, wird es während des Installationsvorgangs ebenfalls installiert.

Nachdem Sie pandas installiert haben, können Sie es in Ihre Arbeitsumgebung importieren. Im Allgemeinen wird pandas unter dem Alias pd importiert:

import pandas as pd

Was ist ein DataFrame in Pandas?

What-Is-a-DataFrame-in-Pandas

Die grundlegende Datenstruktur in Pandas ist der Datenrahmen. Ein Datenrahmen ist ein zweidimensionales Array von Daten mit einem beschrifteten Index und benannten Spalten. Jede Spalte des Datenrahmens, eine so genannte Pandas-Serie, hat einen gemeinsamen Index.

Hier ist ein Beispiel für einen Datenrahmen, den wir in den nächsten Minuten von Grund auf neu erstellen werden. Dieser Datenrahmen enthält Daten darüber, wie viel sechs Studenten in vier Wochen ausgeben.

pd-dataframe-ex

Die Namen der Studenten sind die Zeilenbeschriftungen. Und die Spalten heißen ‘Woche1’ bis ‘Woche4’. Beachten Sie, dass alle Spalten denselben Satz von Zeilenbeschriftungen, auch Index genannt, haben.

Wie man einen Pandas DataFrame erstellt

Es gibt mehrere Möglichkeiten, einen Pandas DataFrame zu erstellen. In diesem Lernprogramm werden wir die folgenden Methoden besprechen:

  • Erstellen eines Datenrahmens aus NumPy-Arrays
  • Erstellen eines Datenrahmens aus einem Python-Wörterbuch
  • Erstellen eines Datenrahmens durch Einlesen von CSV-Dateien

Aus NumPy-Arrays

Lassen Sie uns einen Datenrahmen aus einem NumPy-Array erstellen.

Erstellen wir ein Datenarray der Form (6,4) unter der Annahme, dass jeder Student in einer bestimmten Woche zwischen $0 und $100 ausgibt. Die Funktion randint() aus dem Modul random von NumPy liefert ein Array mit zufälligen ganzen Zahlen in einem bestimmten Intervall [low,high).

import numpy as np
np.random.seed(42)
daten = np.random.randint(0,101,(6,4))
print(daten)
array([[51, 92, 14, 71],
       [60, 20, 82, 86],
       [74, 74, 87, 99],
       [23, 2, 21, 52],
       [ 1, 87, 29, 37],
       [ 1, 63, 59, 20]])

Um einen Pandas-Datenrahmen zu erstellen, können Sie den DataFrame-Konstruktor verwenden und das NumPy-Array als Datenargument übergeben, wie gezeigt:

students_df = pd.DataFrame(data=data)

Jetzt können wir die integrierte Funktion type() aufrufen, um den Typ von students_df zu überprüfen. Wir sehen, dass es sich um ein DataFrame-Objekt handelt.

type(students_df)
# pandas.core.frame.DataFrame
print(schueler_df)
pandas-dataframe-01

Wir sehen, dass wir standardmäßig eine Bereichsindizierung haben, die von 0 bis numRows – 1 reicht, und die Spaltenbeschriftungen lauten 0, 1, 2, …, numCols -1. Dies verringert jedoch die Lesbarkeit. Es ist hilfreich, dem Datenrahmen beschreibende Spaltennamen und Zeilenbeschriftungen hinzuzufügen.

Lassen Sie uns zwei Listen erstellen: eine für die Namen der Schüler und eine für die Spaltenbezeichnungen.

students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny']
cols = ['Woche1','Woche2','Woche3','Woche4']

Wenn Sie den DataFrame-Konstruktor aufrufen, können Sie index und columns auf die zu verwendenden Listen der Zeilen- bzw. Spaltenbeschriftungen setzen.

students_df = pd.DataFrame(data = Daten,index = students,columns = cols)

Wir haben nun den Datenrahmen students_df mit beschreibenden Zeilen- und Spaltenbeschriftungen.

print(schueler_df)
pandas-dataframe-02

Um einige grundlegende Informationen über den Datenrahmen zu erhalten, wie z.B. fehlende Werte und Datentypen, können Sie die Methode info() für das Datenrahmenobjekt aufrufen.

students_df.info()
image-114

Aus einem Python-Wörterbuch

Sie können auch einen Pandas-Datenrahmen aus einem Python-Wörterbuch erstellen.

Hier ist data_dict das Wörterbuch mit den Studentendaten:

  • Die Namen der Studenten sind die Schlüssel.
  • Jeder Wert ist eine Liste der Ausgaben jedes Schülers für die Wochen eins bis vier.
data_dict = {}
students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny']
for student,student_data in zip(students,data):
  data_dict[student] = student_data

Um einen Datenrahmen aus einem Python-Wörterbuch zu erstellen, verwenden Sie from_dict, wie unten gezeigt. Das erste Argument entspricht dem Wörterbuch, das die Daten enthält(data_dict). Standardmäßig werden die Schlüssel als Spaltennamen des Datenrahmens verwendet. Da wir die Schlüssel als Zeilenbeschriftungen festlegen möchten, setzen Sie orient= 'index'.

students_df = pd.DataFrame.from_dict(data_dict,orient='index')
print(studenten_df)
pandas-dataframe-from-dict

Um die Spaltennamen in die Wochennummer zu ändern, setzen wir columns auf die Liste cols:

students_df = pd.DataFrame.from_dict(data_dict,orient='index',columns=cols)
print(schueler_df)
pandas-dataframe-03

Einlesen einer CSV-Datei in ein Pandas DataFrame

Angenommen, die Schülerdaten liegen in einer CSV-Datei vor. Sie können die Funktion read_csv() verwenden, um die Daten aus der Datei in einen Pandas-Datenrahmen einzulesen. pd.read_csv('file-path') ist die allgemeine Syntax, wobei file-path der Pfad zur CSV-Datei ist. Wir können den Parameter names auf die Liste der zu verwendenden Spaltennamen setzen.

students_df = pd.read_csv('/Inhalt/Studenten.csv',names=cols)

Da wir nun wissen, wie man einen Datenrahmen erstellt, wollen wir nun lernen, wie man Zeilen und Spalten auswählt.

Spalten aus einem Pandas DataFrame auswählen

Es gibt mehrere eingebaute Methoden, die Sie verwenden können, um Zeilen und Spalten aus einem Datenrahmen auszuwählen. In diesem Tutorial lernen Sie die gängigsten Methoden kennen, um Spalten, Zeilen oder sowohl Zeilen als auch Spalten aus einem Datenframe auszuwählen.

Auswählen einer einzelnen Spalte

Um eine einzelne Spalte auszuwählen, können Sie df_name<x>[spaltenname]</x> verwenden, wobei spaltenname die Zeichenfolge ist, die den Namen der Spalte angibt.

Hier wählen wir nur die Spalte ‘Woche1’ aus.

week1_df = students_df['Week1']
print(woche1_df)
single-column

Auswählen mehrerer Spalten

Um mehrere Spalten aus dem Datenrahmen auszuwählen, geben Sie die Liste aller auszuwählenden Spaltennamen an.

ungerade_Wochen = students_df[['Woche1','Woche3']]
print(ungerade_Wochen)
multiple-columns

Zusätzlich zu dieser Methode können Sie auch die Methoden iloc() und loc() verwenden, um Spalten auszuwählen. Wir werden später ein Beispiel programmieren.

Zeilen aus einem Pandas DataFrame auswählen

4-2

Verwendung der Methode .iloc()

Um Zeilen mit der Methode iloc () auszuwählen, übergeben Sie die Indizes, die allen Zeilen entsprechen, in Form einer Liste.

In diesem Beispiel wählen wir die Zeilen mit ungeradem Index aus.

ungerade_index_rows = students_df.iloc[[1,3,5]]
print(ungerade_index_rows)
odd-rows

Als nächstes wählen wir eine Teilmenge des Datenrahmens aus, die die Zeilen mit den Indizes 0 bis 2 enthält. Der Endpunkt 3 ist standardmäßig ausgeschlossen.

slice1 = students_df.iloc[0:3]
print(slice1)
select-rows

Verwendung der Methode .loc()

Um die Zeilen eines Datenrahmens mit der loc() -Methode auszuwählen, sollten Sie die Beschriftungen angeben, die den Zeilen entsprechen, die Sie auswählen möchten.

some_rows = students_df.loc[['Bob','Dave','Fanny']]
print(einige_zeilen)
some-rows

Wenn die Zeilen des Datenrahmens mit dem Standardbereich 0, 1, 2, bis zu numRows -1 indiziert sind, sind iloc() und loc() gleichwertig.

Zeilen und Spalten aus einem Pandas DataFrame auswählen

Bisher haben Sie gelernt, wie Sie entweder Zeilen oder Spalten aus einem Pandas DataFrame auswählen können. Es kann jedoch vorkommen, dass Sie eine Teilmenge von sowohl Zeilen als auch Spalten auswählen müssen. Wie machen Sie das also? Sie können die Methoden iloc() und loc() verwenden, die wir bereits besprochen haben.

Im folgenden Codeschnipsel wählen wir zum Beispiel alle Zeilen und Spalten mit den Indizes 2 und 3 aus.

subset_df1 = students_df.iloc[:,[2,3]]
print(teilmenge_df1)
dataframe-subset

Die Verwendung von start:stop erzeugt einen Ausschnitt von start bis einschließlich stop. Wenn Sie also sowohl die start- als auch die stop-Werte ignorieren, beginnt der Ausschnitt am Anfang und erstreckt sich bis zum Ende des Datenrahmens, wobei alle Zeilen ausgewählt werden.

Wenn Sie die loc() -Methode verwenden, müssen Sie die Beschriftungen der Zeilen und Spalten übergeben, die Sie auswählen möchten, wie in der Abbildung gezeigt:

subset_df2 = students_df.loc[['Amy','Evelyn'],['Week1','Week3']]
print(teilmenge_df2)
df-subset

Hier enthält der Datenrahmen subset_df2 die Datensätze von Amy und Evelyn für Woche1 und Woche3.

Fazit

Hier ist ein kurzer Überblick über das, was Sie in diesem Tutorial gelernt haben:

  • Nachdem Sie Pandas installiert haben, können Sie es unter dem Alias pd importieren. Um ein Pandas-Datenrahmenobjekt zu erstellen, können Sie den Konstruktor pd.DataFrame(data) verwenden, wobei data auf das N-dimensionale Array oder eine Iterable verweist, die die Daten enthält. Sie können die Zeilen- und Index- sowie die Spaltenbeschriftungen angeben, indem Sie die optionalen Parameter index bzw. columns setzen.
  • Mit pd.read_csv(pfad-zur-datei) lesen Sie den Inhalt der Datei in einen Datenrahmen.
  • Sie können die Methode info() für das Datenrahmenobjekt aufrufen, um Informationen über die Spalten, die Anzahl der fehlenden Werte, die Datentypen und die Größe des Datenrahmens zu erhalten.
  • Um eine einzelne Spalte auszuwählen, verwenden Sie df_name<x>[col_name]</x>, und um mehrere Spalten auszuwählen, particular column, df_name[[col1,col2,...,coln]].
  • Sie können Spalten und Zeilen auch mit den Methoden loc() und iloc() auswählen.
  • Während die Methode iloc() den Index (oder die Indexscheibe) der auszuwählenden Zeilen und Spalten aufnimmt, nimmt die Methode loc() die Zeilen- und Spaltenbezeichnungen auf.

Die in diesem Lernprogramm verwendeten Beispiele finden Sie in diesem Colab-Notizbuch.

Als nächstes sehen Sie sich diese Liste mit kollaborativen Data Science Notebooks an.