Website-Suche

Python Pandas Modul Tutorial


Python Pandas-Modul

  • Pandas ist eine Open-Source-Bibliothek in Python. Sie bietet sofort einsatzbereite, leistungsstarke Datenstrukturen und Werkzeuge zur Datenanalyse.
  • Das Pandas-Modul läuft auf NumPy und wird häufig für Datenwissenschaft und Datenanalyse verwendet.
  • NumPy ist eine Low-Level-Datenstruktur, die mehrdimensionale Arrays und eine breite Palette von mathematischen Array-Operationen unterstützt. Pandas hat eine höherstufige Schnittstelle. Es bietet auch eine vereinfachte Ausrichtung von tabellarischen Daten und leistungsstarke Funktionen für Zeitreihen.
  • DataFrame ist die wichtigste Datenstruktur in Pandas. Es ermöglicht uns, tabellarische Daten als eine 2-D-Datenstruktur zu speichern und zu bearbeiten.
  • Pandas bietet eine umfangreiche Funktionalität für das DataFrame. Zum Beispiel Datenanpassung, Datenstatistiken, Schneiden, Gruppieren, Zusammenführen, Verketten von Daten usw.

Installation und Einstieg in Pandas

Du musst Python 2.7 oder höher haben, um das Pandas-Modul zu installieren. Wenn du conda verwendest, kannst du es mit dem folgenden Befehl installieren.

conda install pandas

Wenn Sie PIP verwenden, führen Sie den folgenden Befehl aus, um das Pandas-Modul zu installieren.

pip3.7 install pandas

Python Pandas-Modul installieren

Um Pandas und NumPy in Ihr Python-Skript zu importieren, fügen Sie den folgenden Code hinzu:

import pandas as pd
import numpy as np

Da Pandas von der NumPy-Bibliothek abhängt, müssen wir diese Abhängigkeit importieren.

Datenstrukturen im Pandas-Modul

Es gibt 3 Datenstrukturen, die vom Pandas-Modul bereitgestellt werden, und zwar:

  • Serie: Es handelt sich um eine 1-D, größenunveränderliche Array-ähnliche Struktur mit homogenen Daten.
  • Datenrahmen: Es ist eine 2-dimensionale, größenveränderbare Tabellenstruktur mit heterogen typisierten Spalten.
  • Panel: Es ist ein 3D, größenveränderbares Array.

Pandas DataFrame

DataFrame ist die wichtigste und am weitesten verbreitete Datenstruktur und ist ein standardmäßiger Weg, um Daten zu speichern. DataFrame hat Daten in Zeilen und Spalten ausgerichtet, ähnlich wie bei einer SQL-Tabelle oder einer Tabellenkalkulation. Wir können entweder Daten in einen DataFrame hartcodieren oder eine CSV-Datei, TSV-Datei, Excel-Datei, SQL-Tabelle usw. importieren. Wir können den untenstehenden Konstruktor verwenden, um ein DataFrame-Objekt zu erstellen.

pandas.DataFrame(data, index, columns, dtype, copy)

Unten ist eine kurze Beschreibung der Parameter:

  • Daten - Erstellen Sie ein DataFrame-Objekt aus den eingegebenen Daten. Es kann eine Liste, ein Dictionary, eine Serie, Numpy-ndarrays oder sogar ein anderes DataFrame sein.
  • Index - hat die Zeilenbeschriftungen
  • Spalten - verwendet, um Spaltenbeschriftungen zu erstellen
  • dtype - wird verwendet, um den Datentyp jeder Spalte anzugeben, optionales Parameter
  • kopieren - verwendet zum Kopieren von Daten, falls vorhanden

Es gibt viele Möglichkeiten, ein DataFrame zu erstellen. Wir können ein DataFrame-Objekt aus Dictionaries oder einer Liste von Dictionaries erstellen. Wir können es auch aus einer Liste von Tupeln, CSV, Excel-Dateien usw. erstellen. Lassen Sie uns einen einfachen Code ausführen, um ein DataFrame aus der Liste von Dictionaries zu erstellen.

import pandas as pd
import numpy as np
df = pd.DataFrame({
    "State": ['Andhra Pradesh', 'Maharashtra', 'Karnataka', 'Kerala', 'Tamil Nadu'],
    "Capital": ['Hyderabad', 'Mumbai', 'Bengaluru', 'Trivandrum', 'Chennai'],
    "Literacy %": [89, 77, 82, 97,85],
    "Avg High Temp(c)": [33, 30, 29, 31, 32 ]
})
print(df)

Ausgabe:

Der erste Schritt besteht darin, ein Dictionary zu erstellen. Der zweite Schritt besteht darin, das Dictionary als Argument in der Methode DataFrame() zu übergeben. Der letzte Schritt besteht darin, das DataFrame auszudrucken. Wie Sie sehen, kann das DataFrame mit einer Tabelle verglichen werden, die heterogene Werte enthält. Auch die Größe des DataFrames kann geändert werden. Wir haben die Daten in Form einer Map bereitgestellt, und die Schlüssel der Map werden von Pandas als Zeilenbezeichnungen betrachtet. Der Index wird in der linksstehenden Spalte angezeigt und hat die Zeilenbezeichnungen. Der Spaltenkopf und die Daten werden in tabellarischer Form angezeigt. Es ist auch möglich, indizierte DataFrames zu erstellen. Dies kann durch Konfigurieren des Indexparameters in der Methode DataFrame() geschehen.

Daten aus CSV in DataFrame importieren

Wir können auch ein DataFrame erstellen, indem wir eine CSV-Datei importieren. Eine CSV-Datei ist eine Textdatei mit einem Datensatz pro Zeile. Die Werte innerhalb des Datensatzes sind durch das Zeichen „Komma“ getrennt. Pandas bietet eine nützliche Methode namens read_csv() an, um den Inhalt der CSV-Datei in ein DataFrame zu lesen. Zum Beispiel können wir eine Datei namens ‚cities.csv‘ erstellen, die Details zu indischen Städten enthält. Die CSV-Datei wird im selben Verzeichnis gespeichert, das die Python-Skripte enthält. Diese Datei kann wie folgt importiert werden:

import pandas as pd
data =  pd.read_csv('cities.csv')
print(data)

Unser Ziel ist es, Daten zu laden und sie zu analysieren, um Schlussfolgerungen zu ziehen. Daher können wir jede geeignete Methode verwenden, um die Daten zu laden. In diesem Tutorial kodieren wir die Daten des DataFrames hart.

Daten im DataFrame überprüfen

Die Ausführung des DataFrames mit seinem Namen zeigt die gesamte Tabelle an. In Echtzeit werden die zu analysierenden Datensätze Tausende von Zeilen haben. Um Daten zu analysieren, müssen wir Daten aus großen Datenmengen inspizieren. Pandas bietet viele nützliche Funktionen, um nur die Daten zu inspizieren, die wir benötigen. Wir können df.head(n) verwenden, um die ersten n Zeilen zu erhalten oder df.tail(n), um die letzten n Zeilen auszudrucken. Zum Beispiel druckt der folgende Code die ersten 2 Zeilen und die letzte 1 Zeile aus dem DataFrame.

print(df.head(2))

Ausgabe:

print(df.tail(1))

Ausgabe:

Ähnlich gibt print(df.dtypes) die Datentypen aus. print(df.index) gibt den Index aus. print(df.columns) gibt die Spalten des DataFrames aus. print(df.values) zeigt die Tabellenwerte an.

1. Statistische Zusammenfassung der Aufzeichnungen erhalten

Wir können eine statistische Zusammenfassung (Anzahl, Mittelwert, Standardabweichung, Min, Max usw.) der Daten mit der df.describe()-Funktion erhalten. Lassen Sie uns nun diese Funktion verwenden, um die statistische Zusammenfassung der Spalte "Literacy %" anzuzeigen. Dazu fügen wir den folgenden Code hinzu:

print(df['Literacy %'].describe())

Ausgabe:

Die df.describe() Funktion zeigt die statistische Zusammenfassung sowie den Datentyp an.

2. Datensätze sortieren

Wir können Aufzeichnungen nach beliebiger Spalte mit der df.sort_values() Funktion sortieren. Lassen Sie uns zum Beispiel die Spalte "Literacy %" in absteigender Reihenfolge sortieren.

print(df.sort_values('Literacy %', ascending=False))

Ausgabe:

3. Aufzeichnen von Slices

Es ist möglich, Daten einer bestimmten Spalte mithilfe des Spaltennamens zu extrahieren. Zum Beispiel, um die 'Hauptstadt'-Spalte zu extrahieren, verwenden wir:

df['Capital']

oder

(df.Capital)

Ausgabe:

Es ist auch möglich, mehrere Spalten zu schneiden. Dies geschieht, indem man mehrere Spaltennamen in zwei eckige Klammern einschließt, wobei die Spaltennamen durch Kommas getrennt sind. Der folgende Code schneidet die Spalten ‚State‘ und ‚Capital‘ des DataFrames.

print(df[['State', 'Capital']])

Ausgabe:

Es ist auch möglich, Zeilen zu schneiden. Mehrere Zeilen können mit dem Operator „:“ ausgewählt werden. Der folgende Code gibt die ersten 3 Zeilen zurück.

df[0:3]

Ausgabe:

Eine interessante Funktion der Pandas-Bibliothek ist die Auswahl von Daten basierend auf ihren Zeilen- und Spaltenbezeichnungen mit der iloc[0] Funktion. Oft müssen wir nur einige wenige Spalten zur Analyse auswählen. Wir können auch nach Index auswählen, indem wir loc['index_one'] verwenden. Zum Beispiel, um die zweite Zeile auszuwählen, können wir df.iloc[1,:] verwenden. Angenommen, wir müssen das zweite Element der zweiten Spalte auswählen. Dies kann durch die Verwendung der df.iloc[1,1] Funktion erfolgen. In diesem Beispiel zeigt die Funktion df.iloc[1,1] "Mumbai" als Ausgabe an.

4. Daten filtern

Es ist auch möglich, nach Spaltenwerten zu filtern. Zum Beispiel filtert der folgende Code die Spalten, deren Literaritätsanteil über 90 % liegt.

print(df[df['Literacy %']>90])

Jeder Vergleichsoperator kann verwendet werden, um basierend auf einer Bedingung zu filtern. Ausgabe:

Eine weitere Möglichkeit, Daten zu filtern, besteht darin, isin zu verwenden. Folgendes ist der Code, um nur 2 Bundesstaaten ‚Karnataka‘ und ‚Tamil Nadu‘ zu filtern.

print(df[df['State'].isin(['Karnataka', 'Tamil Nadu'])])

Ausgabe:

5. Spalte umbenennen

Es ist möglich, die Funktion df.rename() zu verwenden, um eine Spalte umzubenennen. Die Funktion nimmt den alten Spaltennamen und den neuen Spaltennamen als Argumente. Zum Beispiel, lassen Sie uns die Spalte 'Literacy %' in 'Literacy percentage' umbenennen.

df.rename(columns = {'Literacy %':'Literacy percentage'}, inplace=True)
print(df.head())

Das Argument `inplace=True` nimmt Änderungen am DataFrame vor. Ausgabe:

6. Datenaufbereitung

Data Science umfasst die Verarbeitung von Daten, damit die Daten gut mit den Datenalgorithmen zusammenarbeiten können. Data Wrangling ist der Prozess der Datenverarbeitung, wie z.B. das Mergen, Gruppieren und Zusammenführen. Die Pandas-Bibliothek bietet nützliche Funktionen wie merge(), groupby() und concat(), um Data Wrangling-Aufgaben zu unterstützen. Lass uns 2 DataFrames erstellen und die Funktionen des Data Wranglings zeigen, um es besser zu verstehen.

import pandas as pd

d = {  
    'Employee_id': ['1', '2', '3', '4', '5'],
    'Employee_name': ['Akshar', 'Jones', 'Kate', 'Mike', 'Tina']
}
df1 = pd.DataFrame(d, columns=['Employee_id', 'Employee_name'])  
print(df1)

Ausgabe:

Lass uns das zweite DataFrame mit dem folgenden Code erstellen:

import pandas as pd

data = {  
    'Employee_id': ['4', '5', '6', '7', '8'],
    'Employee_name': ['Meera', 'Tia', 'Varsha', 'Williams', 'Ziva']
}
df2 = pd.DataFrame(data, columns=['Employee_id', 'Employee_name'])  
print(df2)

Ausgabe:

a. Zusammenführen

Jetzt lassen Sie uns die 2 DataFrames, die wir erstellt haben, nach den Werten von 'Employee_id' mit der Funktion merge() zusammenführen:

print(pd.merge(df1, df2, on='Employee_id'))

Ausgabe:

Wir können sehen, dass die Funktion merge() die Zeilen aus beiden DataFrames zurückgibt, die den gleichen Spaltenwert haben, der beim Zusammenführen verwendet wurde.

b. Gruppierung

Gruppierung ist ein Prozess, bei dem Daten in verschiedene Kategorien gesammelt werden. Im folgenden Beispiel kommt das Feld "Mitarbeiter_Name" im Namen "Meera" zweimal vor. Lassen Sie uns also nach der Spalte "Mitarbeiter_Name" gruppieren.

import pandas as pd
import numpy as np

data = {
    'Employee_id': ['4', '5', '6', '7', '8'],
    'Employee_name': ['Meera', 'Meera', 'Varsha', 'Williams', 'Ziva']
}
df2 = pd.DataFrame(data)

group = df2.groupby('Employee_name')
print(group.get_group('Meera'))

Das Feld ‚Mitarbeiter_name‘ mit dem Wert ‚Meera‘ wird nach der Spalte „Mitarbeiter_name“ gruppiert. Die Beispielausgabe ist wie folgt: Ausgabe:

c. Verketten

Das Zusammenführen von Daten betrifft das Hinzufügen eines Datensatzes zu einem anderen. Pandas bietet eine Funktion namens concat(), um DataFrames zusammenzuführen. Zum Beispiel, lassen Sie uns die DataFrames df1 und df2 zusammenführen, indem wir:

print(pd.concat([df1, df2]))

Ausgabe:

Erstellen Sie ein DataFrame, indem Sie ein Dictionary von Series übergeben.

Um eine Serie zu erstellen, können wir die pd.Series()-Methode verwenden und ihm ein Array übergeben. Lassen Sie uns eine einfache Serie wie folgt erstellen:

series_sample = pd.Series([100, 200, 300, 400])
print(series_sample)

Ausgabe:

Wir haben eine Serie erstellt. Sie sehen, dass 2 Spalten angezeigt werden. Die erste Spalte enthält die Indexwerte, die bei 0 beginnen. Die zweite Spalte enthält die Elemente, die als Serie übergeben wurden. Es ist möglich, ein DataFrame zu erstellen, indem man ein Wörterbuch von `Serien` übergibt. Lassen Sie uns ein DataFrame erstellen, das gebildet wird, indem wir die Indizes der Serien zusammenführen und übergeben. Beispiel

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
print(df)

Beispielausgabe

Für die erste Serie, da wir das Label 'd' nicht angegeben haben, wird NaN zurückgegeben.

Spaltenauswahl, Hinzufügen, Löschen

Es ist möglich, eine bestimmte Spalte aus dem DataFrame auszuwählen. Zum Beispiel, um nur die erste Spalte anzuzeigen, können wir den obenstehenden Code wie folgt umschreiben:

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
 'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
print(df['Matches played'])

Der obige Code gibt nur die Spalte „Gespielte Matches“ des DataFrames aus. Ausgabe

Es ist auch möglich, einer vorhandenen DataFrame Spalten hinzuzufügen. Zum Beispiel fügt der folgende Code eine neue Spalte mit dem Namen „Runrate“ zur obigen DataFrame hinzu.

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
 'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
df['Runrate']=pd.Series([80, 70, 60, 50], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])
print(df)

Ausgabe:

Wir können Spalten mit den Funktionen `delete` und `pop` löschen. Um beispielsweise die Spalte ‚Gespielte Spiele‘ im obigen Beispiel zu löschen, können wir dies auf eine der folgenden zwei Arten tun:

del df['Matches played']

oder

df.pop('Matches played')

Ausgabe:

Schlussfolgerung

In diesem Tutorial hatten wir eine kurze Einführung in die Python Pandas-Bibliothek. Wir haben auch praktische Beispiele durchgeführt, um die Leistungsfähigkeit der Pandas-Bibliothek im Bereich der Datenwissenschaft zu entfalten. Außerdem haben wir die verschiedenen Datenstrukturen in der Python-Bibliothek durchgenommen. Referenz: Offizielle Webseite von Pandas