Datenanalyse mit Python

In diesem Artikel besprechen wir, wie man Datenanalysen mit Python durchführt. Wir werden alle Arten der Datenanalyse besprechen, d. h. die Analyse numerischer Daten mit NumPy, tabellarische Daten mit Pandas, Datenvisualisierung Matplotlib und explorative Datenanalyse.

Datenanalyse mit Python

Datenanalyse ist die Technik des Sammelns, Transformierens und Organisierens von Daten, um zukünftige Vorhersagen und fundierte datengesteuerte Entscheidungen zu treffen. Es hilft auch, mögliche Lösungen für ein Geschäftsproblem zu finden. Die Datenanalyse umfasst sechs Schritte. Sie sind:

  • Fragen Sie nach Datenanforderungen oder geben Sie diese an
  • Daten vorbereiten oder sammeln
  • Reinigen und verarbeiten
  • Analysieren
  • Aktie
  • Handeln oder melden

Datenanalyse mit Python



Notiz: Weitere Informationen zu diesen Schritten finden Sie in unserem NumPy ist ein Array-Verarbeitungspaket in Python und bietet ein leistungsstarkes mehrdimensionales Array-Objekt und Tools für die Arbeit mit diesen Arrays. Es ist das grundlegende Paket für wissenschaftliches Rechnen mit Python.

Arrays in NumPy

NumPy-Array ist eine Tabelle mit Elementen (normalerweise Zahlen), die alle vom gleichen Typ sind und durch ein Tupel positiver Ganzzahlen indiziert sind. In Numpy wird die Anzahl der Dimensionen des Arrays als Rang des Arrays bezeichnet. Ein Tupel von ganzen Zahlen, die die Größe des Arrays entlang jeder Dimension angeben, wird als Form des Arrays bezeichnet.

Erstellen eines NumPy-Arrays

NumPy-Arrays können auf verschiedene Arten und mit unterschiedlichen Rängen erstellt werden. Es kann auch unter Verwendung verschiedener Datentypen wie Listen, Tupel usw. erstellt werden. Der Typ des resultierenden Arrays wird aus dem Typ der Elemente in den Sequenzen abgeleitet. NumPy bietet mehrere Funktionen zum Erstellen von Arrays mit anfänglichen Platzhalterinhalten. Dadurch wird die Notwendigkeit des kostspieligen Ausbaus von Arrays minimiert.

Array erstellen mit numpy.empty(shape, dtype=float, order=’C’)

Python3
import numpy as np b = np.empty(2, dtype = int) print('Matrix b : 
', b) a = np.empty([2, 2], dtype = int) print('
Matrix a : 
', a) c = np.empty([3, 3]) print('
Matrix c : 
', c) 

Ausgabe:

Leere Matrix mit Pandas

Leere Matrix mit Pandas

Array erstellen mit numpy.zeros(shape, dtype = None, order = ‚C‘)

Python3
import numpy as np b = np.zeros(2, dtype = int) print('Matrix b : 
', b) a = np.zeros([2, 2], dtype = int) print('
Matrix a : 
', a) c = np.zeros([3, 3]) print('
Matrix c : 
', c) 

Ausgabe:

Matrix b :   [0 0]  Matrix a :   [[0 0]  [0 0]]  Matrix c :   [[0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]] 

Operationen auf Numpy-Arrays

Rechenoperationen

  • Zusatz:
Python3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing addition using arithmetic operator add_ans = a+b print(add_ans) # Performing addition using numpy function add_ans = np.add(a, b) print(add_ans) # The same functions and operations can be used for # multiple matrices c = np.array([1, 2, 3, 4]) add_ans = a+b+c print(add_ans) add_ans = np.add(a, b, c) print(add_ans) 

Ausgabe:

[ 7 77 23 130] [ 7 77 23 130] [ 8 79 26 134] [ 7 77 23 130] 
  • Subtraktion:
Python3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing subtraction using arithmetic operator sub_ans = a-b print(sub_ans) # Performing subtraction using numpy function sub_ans = np.subtract(a, b) print(sub_ans) 

Ausgabe:

[ 3 67 3 70] [ 3 67 3 70] 
  • Multiplikation:
Python3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing multiplication using arithmetic # operator mul_ans = a*b print(mul_ans) # Performing multiplication using numpy function mul_ans = np.multiply(a, b) print(mul_ans) 

Ausgabe:

[ 10 360 130 3000] [ 10 360 130 3000] 
  • Aufteilung:
Python3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing division using arithmetic operators div_ans = a/b print(div_ans) # Performing division using numpy functions div_ans = np.divide(a, b) print(div_ans) 

Ausgabe:

[ 2.5 14.4 1.3 3.33333333] [ 2.5 14.4 1.3 3.33333333] 

Weitere Informationen finden Sie in unserem NumPy – Tutorial zu arithmetischen Operationen

NumPy-Array-Indizierung

Indizierung kann in NumPy durch die Verwendung eines Arrays als Index erfolgen. Im Fall des Slice wird eine Ansicht oder flache Kopie des Arrays zurückgegeben, im Index-Array wird jedoch eine Kopie des ursprünglichen Arrays zurückgegeben. Numpy-Arrays können mit Ausnahme von Tupeln mit anderen Arrays oder jeder anderen Sequenz indiziert werden. Das letzte Element wird um -1 indiziert, das vorletzte um -2 und so weiter.

Python NumPy Array-Indizierung

Python3
# Python program to demonstrate # the use of index arrays. import numpy as np # Create a sequence of integers from # 10 to 1 with a step of -2 a = np.arange(10, 1, -2) print('
 A sequential array with a negative step: 
',a) # Indexes are specified inside the np.array method. newarr = a[np.array([3, 1, 2 ])] print('
 Elements at these indices are:
',newarr) 

Ausgabe:

A sequential array with a negative step:   [10 8 6 4 2]   Elements at these indices are:  [4 8 6] 

NumPy-Array-Slicing

Betrachten Sie die Syntax x[obj], wobei x das Array und obj der Index ist. Das Slice-Objekt ist im Fall von der Index grundlegendes Schneiden . Grundlegendes Slicing findet statt, wenn obj:

  • ein Slice-Objekt, das die Form start: stop: step hat
  • eine Ganzzahl
  • oder ein Tupel aus Slice-Objekten und Ganzzahlen

Alle durch einfaches Slicing generierten Arrays sind immer die Ansicht im ursprünglichen Array.

Python3
# Python program for basic slicing. import numpy as np # Arrange elements from 0 to 19 a = np.arange(20) print('
 Array is:
 ',a) # a[start:stop:step] print('
 a[-8:17:1] = ',a[-8:17:1]) # The : operator means all elements till the end. print('
 a[10:] = ',a[10:]) 

Ausgabe:

Array is: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]  a[-8:17:1] = [12 13 14 15 16]  a[10:] = [10 11 12 13 14 15 16 17 18 19] 

Ellipsen können auch zusammen mit dem einfachen Schneiden verwendet werden. Ellipse (…) ist die Anzahl der Objekte, die erforderlich sind, um ein Auswahltupel mit der gleichen Länge wie die Abmessungen des Arrays zu erstellen.

Python3
# Python program for indexing using basic slicing with ellipsis import numpy as np # A 3 dimensional array. b = np.array([[[1, 2, 3],[4, 5, 6]], [[7, 8, 9],[10, 11, 12]]]) print(b[...,1]) #Equivalent to b[: ,: ,1 ] 

Ausgabe:

[[ 2 5]  [ 8 11]] 

NumPy Array Broadcasting

Der Begriff Rundfunk bezieht sich darauf, wie Numpy Arrays mit unterschiedlichen Dimensionen während arithmetischer Operationen behandelt, die zu bestimmten Einschränkungen führen. Das kleinere Array wird über das größere Array verteilt, sodass sie kompatible Formen haben.

Nehmen wir an, wir haben einen großen Datensatz, jedes Datum ist eine Liste von Parametern. In Numpy haben wir ein 2D-Array, bei dem jede Zeile ein Datum ist und die Anzahl der Zeilen der Größe des Datensatzes entspricht. Angenommen, wir möchten auf alle diese Daten eine Art Skalierung anwenden. Jeder Parameter erhält seinen eigenen Skalierungsfaktor, oder sagen wir: Jeder Parameter wird mit einem bestimmten Faktor multipliziert.

Um ein klares Verständnis zu schaffen, zählen wir die Kalorien in Lebensmitteln anhand einer Makronährstoffaufschlüsselung. Grob gesagt bestehen die Kalorienanteile der Nahrung aus Fetten (9 Kalorien pro Gramm), Proteinen (4 CPG) und Kohlenhydraten (4 CPG). Wenn wir also einige Lebensmittel (unsere Daten) auflisten und für jedes Lebensmittel seine Makronährstoffaufteilung (Parameter) auflisten, können wir dann jeden Nährstoff mit seinem Kalorienwert multiplizieren (Skalierung anwenden), um die Kalorienaufteilung jedes Lebensmittels zu berechnen.

NumPy Array Broadcasting

Mit dieser Transformation können wir nun alle möglichen nützlichen Informationen berechnen. Wie hoch ist zum Beispiel die Gesamtkalorienzahl eines Lebensmittels? Wenn ich eine Aufschlüsselung meines Abendessens durchführe, weiß ich, wie viele Kalorien ich durch Eiweiß zu mir genommen habe und so weiter.

Sehen wir uns eine naive Möglichkeit an, diese Berechnung mit Numpy durchzuführen:

Python3
import numpy as np macros = np.array([ [0.8, 2.9, 3.9], [52.4, 23.6, 36.5], [55.2, 31.7, 23.9], [14.4, 11, 4.9] ]) # Create a new array filled with zeros, # of the same shape as macros. result = np.zeros_like(macros) cal_per_macro = np.array([3, 3, 8]) # Now multiply each row of macros by # cal_per_macro. In Numpy, `*` is # element-wise multiplication between two arrays. for i in range(macros.shape[0]): result[i, :] = macros[i, :] * cal_per_macro result 

Ausgabe:

array([[ 2.4, 8.7, 31.2],  [157.2, 70.8, 292. ],  [165.6, 95.1, 191.2],  [ 43.2, 33. , 39.2]]) 

Senderegeln: Für die gemeinsame Übertragung zweier Arrays gelten folgende Regeln:

  • Wenn die Arrays nicht den gleichen Rang haben, stellen Sie der Form des Arrays mit dem niedrigeren Rang Einsen voran, bis beide Formen die gleiche Länge haben.
  • Die beiden Arrays sind in einer Dimension kompatibel, wenn sie in der Dimension die gleiche Größe haben oder wenn eines der Arrays in dieser Dimension die Größe 1 hat.
  • Die Arrays können zusammen übertragen werden, wenn sie mit allen Dimensionen kompatibel sind.
  • Nach der Übertragung verhält sich jedes Array so, als hätte es eine Form, die dem elementweisen Maximum der Formen der beiden Eingabearrays entspricht.
  • In jeder Dimension, in der ein Array eine Größe von 1 und das andere Array eine Größe größer als 1 hatte, verhält sich das erste Array so, als ob es entlang dieser Dimension kopiert würde.
Python3
import numpy as np v = np.array([12, 24, 36]) w = np.array([45, 55]) # To compute an outer product we first # reshape v to a column vector of shape 3x1 # then broadcast it against w to yield an output # of shape 3x2 which is the outer product of v and w print(np.reshape(v, (3, 1)) * w) X = np.array([[12, 22, 33], [45, 55, 66]]) # x has shape 2x3 and v has shape (3, ) # so they broadcast to 2x3, print(X + v) # Add a vector to each column of a matrix X has # shape 2x3 and w has shape (2, ) If we transpose X # then it has shape 3x2 and can be broadcast against w # to yield a result of shape 3x2. # Transposing this yields the final result # of shape 2x3 which is the matrix. print((X.T + w).T) # Another solution is to reshape w to be a column # vector of shape 2X1 we can then broadcast it # directly against X to produce the same output. print(X + np.reshape(w, (2, 1))) # Multiply a matrix by a constant, X has shape 2x3. # Numpy treats scalars as arrays of shape(); # these can be broadcast together to shape 2x3. print(X * 2) 

Ausgabe:

[[ 540 660]  [1080 1320]  [1620 1980]] [[ 24 46 69]  [ 57 79 102]] [[ 57 67 78]  [100 110 121]] [[ 57 67 78]  [100 110 121]] [[ 24 44 66]  [ 90 110 132]] 

Notiz: Weitere Informationen finden Sie in unserem Python NumPy-Tutorial .

Daten mit Pandas analysieren

Python Pandas wird für relationale oder gekennzeichnete Daten verwendet und stellt verschiedene Datenstrukturen zur Bearbeitung solcher Daten und Zeitreihen bereit. Diese Bibliothek basiert auf der NumPy-Bibliothek. Dieses Modul wird im Allgemeinen importiert als:

import pandas as pd 

Hier wird pd als Alias ​​für die Pandas bezeichnet. Es ist jedoch nicht notwendig, die Bibliothek mit dem Alias ​​zu importieren, es hilft lediglich dabei, bei jedem Aufruf einer Methode oder Eigenschaft weniger Code zu schreiben. Pandas bieten im Allgemeinen zwei Datenstrukturen zum Bearbeiten von Daten:

  • Serie
  • Datenrahmen

Serie:

Pandas-Serie ist ein eindimensional beschriftetes Array, das Daten jeglichen Typs (Ganzzahl, String, Float, Python-Objekte usw.) enthalten kann. Die Achsenbeschriftungen werden zusammenfassend als Indizes bezeichnet. Die Pandas-Serie ist nichts anderes als eine Spalte in einer Excel-Tabelle. Beschriftungen müssen nicht eindeutig sein, sondern müssen einen hashbaren Typ haben. Das Objekt unterstützt sowohl ganzzahlige als auch kennzeichnungsbasierte Indizierung und stellt eine Vielzahl von Methoden zum Ausführen von Vorgängen bereit, die den Index betreffen.

Pandas-Serie

Es kann mit der Funktion Series() erstellt werden, indem der Datensatz aus dem vorhandenen Speicher wie SQL, Datenbank, CSV-Dateien, Excel-Dateien usw. oder aus Datenstrukturen wie Listen, Wörterbüchern usw. geladen wird.

Python Pandas erstellen Serien

Python3
import pandas as pd import numpy as np # Creating empty series ser = pd.Series() print(ser) # simple array data = np.array(['g', 'e', 'e', 'k', 's']) ser = pd.Series(data) print(ser) 

Ausgabe:

Pandas-Serie

Pandas-Serie

Datenrahmen:

Pandas DataFrame ist eine zweidimensionale, in ihrer Größe veränderliche, potenziell heterogene tabellarische Datenstruktur mit beschrifteten Achsen (Zeilen und Spalten). Ein Datenrahmen ist eine zweidimensionale Datenstruktur, d. h. Daten werden tabellarisch in Zeilen und Spalten angeordnet. Pandas DataFrame besteht aus drei Hauptkomponenten: den Daten, Zeilen und Spalten.

Pandas-Datenrahmen

Es kann mit der Methode Dataframe() erstellt werden und kann wie eine Serie auch aus verschiedenen Dateitypen und Datenstrukturen bestehen.

Python Pandas erstellen Datenrahmen

Python3
import pandas as pd # Calling DataFrame constructor df = pd.DataFrame() print(df) # list of strings lst = ['Geeks', 'For', 'Geeks', 'is', 'portal', 'for', 'Geeks'] # Calling DataFrame constructor on list df = pd.DataFrame(lst) df 

Ausgabe:

Datenrahmen aus Liste erstellen

Erstellen eines Datenrahmens aus einer Python-Liste

Datenrahmen aus CSV erstellen

Wir können Erstellen Sie einen Datenrahmen aus der CSV Dateien mit der read_csv() Funktion.

Python Pandas lesen CSV

Python3
import pandas as pd # Reading the CSV file df = pd.read_csv('Iris.csv') # Printing top 5 rows df.head() 

Ausgabe:

Kopf eines Datenrahmens

Kopf eines Datenrahmens

DataFrame filtern

Pandas dataframe.filter() Die Funktion wird verwendet, um Zeilen oder Spalten des Datenrahmens entsprechend den Beschriftungen im angegebenen Index zu unterteilen. Beachten Sie, dass diese Routine einen Datenrahmen nicht nach seinem Inhalt filtert. Der Filter wird auf die Beschriftungen des Index angewendet.

Python Pandas Filterdatenrahmen

Python3
import pandas as pd # Reading the CSV file df = pd.read_csv('Iris.csv') # applying filter function df.filter(['Species', 'SepalLengthCm', 'SepalLengthCm']).head() 

Ausgabe:

Filter auf Datensatz anwenden

Filter auf Datensatz anwenden

DataFrame sortieren

Um den Datenrahmen in Pandas zu sortieren, ist die Funktion sort_values() wird eingesetzt. Pandas sort_values() kann den Datenrahmen in aufsteigender oder absteigender Reihenfolge sortieren.

Python Pandas sortiert Datenrahmen in aufsteigender Reihenfolge

Ausgabe:

Sortierter Datensatz basierend auf einem Spaltenwert

Sortierter Datensatz basierend auf einem Spaltenwert

Pandas GroupBy

Gruppiere nach ist ein ziemlich einfaches Konzept. Wir können eine Gruppierung von Kategorien erstellen und eine Funktion auf die Kategorien anwenden. In echten Data-Science-Projekten müssen Sie mit großen Datenmengen umgehen und Dinge immer wieder ausprobieren. Aus Effizienzgründen verwenden wir daher das Groupby-Konzept. Groupby bezieht sich hauptsächlich auf einen Prozess, der einen oder mehrere der folgenden Schritte umfasst:

  • Aufteilung: Dabei handelt es sich um einen Prozess, bei dem wir Daten in Gruppen aufteilen, indem wir einige Bedingungen auf Datensätze anwenden.
  • Bewirbt sich: Dabei handelt es sich um einen Prozess, bei dem wir auf jede Gruppe unabhängig eine Funktion anwenden.
  • Kombinieren: Dabei handelt es sich um einen Prozess, bei dem wir verschiedene Datensätze kombinieren, nachdem wir Groupby angewendet haben, und die Ergebnisse zu einer Datenstruktur zusammenfügen.

Das folgende Bild hilft beim Verständnis des Prozesses im Groupby-Konzept.

1. Gruppieren Sie die eindeutigen Werte aus der Spalte „Team“.

Pandas Groupby-Methode

2. Jetzt gibt es für jede Gruppe einen Eimer

3. Werfen Sie die anderen Daten in die Buckets

Pandas GroupBy

4. Wenden Sie eine Funktion auf die Gewichtsspalte jedes Buckets an.

Anwenden der Funktion auf die Gewichtsspalte jeder Spalte

Python Pandas GroupBy

Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'Name': ['Jai', 'Anuj', 'Jai', 'Princi', 'Gaurav', 'Anuj', 'Princi', 'Abhi'], 'Age': [27, 24, 22, 32, 33, 36, 27, 32], 'Address': ['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj', 'Jaunpur', 'Kanpur', 'Allahabad', 'Aligarh'], 'Qualification': ['Msc', 'MA', 'MCA', 'Phd', 'B.Tech', 'B.com', 'Msc', 'MA']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) print('Original Dataframe') display(df) # applying groupby() function to # group the data on Name value. gk = df.groupby('Name') # Let's print the first entries # in all the groups formed. print('After Creating Groups') gk.first() 

Ausgabe:

Pandas Groupby

Pandas Groupby

Funktion auf Gruppe anwenden:

Nachdem wir Daten in eine Gruppe aufgeteilt haben, wenden wir auf jede Gruppe eine Funktion an, um dazu einige Operationen auszuführen:

  • Anhäufung: Dabei handelt es sich um einen Prozess, bei dem wir eine zusammenfassende Statistik (oder Statistiken) über jede Gruppe berechnen. Berechnen Sie beispielsweise Gruppensummen oder -mittelwerte
  • Transformation: Dabei handelt es sich um einen Prozess, bei dem wir einige gruppenspezifische Berechnungen durchführen und einen Like-Index zurückgeben. Beispiel: Füllen von NAs innerhalb von Gruppen mit einem von jeder Gruppe abgeleiteten Wert
  • Filtration: Dabei handelt es sich um einen Prozess, bei dem wir einige Gruppen entsprechend einer gruppenweisen Berechnung verwerfen, die „Wahr“ oder „Falsch“ auswertet. Zum Beispiel das Herausfiltern von Daten basierend auf der Gruppensumme oder dem Gruppenmittelwert

Pandas-Aggregation

Anhäufung ist ein Prozess, bei dem wir eine zusammenfassende Statistik über jede Gruppe berechnen. Die aggregierte Funktion gibt einen einzelnen aggregierten Wert für jede Gruppe zurück. Nach der Aufteilung der Daten in Gruppen mithilfe der Groupby-Funktion können mehrere Aggregationsvorgänge für die gruppierten Daten durchgeführt werden.

Python-Pandas-Aggregation

Python3
# importing pandas module import pandas as pd # importing numpy as np import numpy as np # Define a dictionary containing employee data data1 = {'Name': ['Jai', 'Anuj', 'Jai', 'Princi', 'Gaurav', 'Anuj', 'Princi', 'Abhi'], 'Age': [27, 24, 22, 32, 33, 36, 27, 32], 'Address': ['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj', 'Jaunpur', 'Kanpur', 'Allahabad', 'Aligarh'], 'Qualification': ['Msc', 'MA', 'MCA', 'Phd', 'B.Tech', 'B.com', 'Msc', 'MA']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # performing aggregation using # aggregate method grp1 = df.groupby('Name') grp1.aggregate(np.sum) 

Ausgabe:

Verwendung der Summenaggregatfunktion für den Datensatz

Verwendung der Summenaggregatfunktion für den Datensatz

Verketten von DataFrame

Um den Datenrahmen zu verknüpfen, verwenden wir concat() Funktion, die beim Verketten des Datenrahmens hilft. Diese Funktion übernimmt die ganze schwere Arbeit der Durchführung von Verkettungsoperationen entlang einer Achse von Pandas-Objekten und führt gleichzeitig eine optionale Mengenlogik (Vereinigung oder Schnittmenge) der Indizes (falls vorhanden) auf den anderen Achsen aus.

Python Pandas verketten Datenrahmen

Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32],} # Define a dictionary containing employee data data2 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'], 'Qualification':['Btech', 'B.A', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2) display(df, df1) # combining series and dataframe res = pd.concat([df, df1], axis=1) res 

Ausgabe:

DataFrame zusammenführen

Wenn wir sehr große DataFrames kombinieren müssen, sind Verknüpfungen eine leistungsstarke Möglichkeit, diese Vorgänge schnell auszuführen. Verknüpfungen können jeweils nur für zwei DataFrames durchgeführt werden, die als linke und rechte Tabelle bezeichnet werden. Der Schlüssel ist die gemeinsame Spalte, in der die beiden DataFrames verbunden werden. Es empfiehlt sich, Schlüssel mit eindeutigen Werten in der gesamten Spalte zu verwenden, um unbeabsichtigte Duplikate von Zeilenwerten zu vermeiden. Pandas bieten eine einzige Funktion: verschmelzen() , als Einstiegspunkt für alle standardmäßigen Datenbankverknüpfungsvorgänge zwischen DataFrame-Objekten.

Es gibt vier grundlegende Möglichkeiten, die Verknüpfung zu handhaben (innere, linke, rechte und äußere), abhängig davon, welche Zeilen ihre Daten behalten müssen.

Daframe Python Pandas zusammenführen

Python Pandas Merge-Datenrahmen

Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32],} # Define a dictionary containing employee data data2 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'], 'Qualification':['Btech', 'B.A', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2) display(df, df1) # using .merge() function res = pd.merge(df, df1, on='key') res 

Ausgabe:

Verknüpfen zweier Datensätze

Verknüpfen zweier Datensätze

Beitritt zu DataFrame

Um den Datenrahmen zu verbinden, verwenden wir .verbinden() Funktion: Diese Funktion wird zum Kombinieren der Spalten von zwei möglicherweise unterschiedlich indizierten DataFrames zu einem einzigen Ergebnis-DataFrame verwendet.

Python-Pandas treten Dataframe bei

Python3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32]} # Define a dictionary containing employee data data2 = {'Address':['Allahabad', 'Kannuaj', 'Allahabad', 'Kannuaj'], 'Qualification':['MCA', 'Phd', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1,index=['K0', 'K1', 'K2', 'K3']) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2, index=['K0', 'K2', 'K3', 'K4']) display(df, df1) # joining dataframe res = df.join(df1) res 

Ausgabe:

Zusammenfügen zweier Datensätze

Weitere Informationen finden Sie in unserem Pandas verschmelzen, verbinden und verketten Lernprogramm

Eine vollständige Anleitung zu Pandas finden Sie in unserer Pandas-Tutorial .

Visualisierung mit Matplotlib

Matplotlib ist einfach zu verwenden und eine erstaunliche Visualisierungsbibliothek in Python. Es basiert auf NumPy-Arrays und ist für die Zusammenarbeit mit dem breiteren SciPy-Stack konzipiert. Es besteht aus mehreren Diagrammen wie Linie, Balken, Streuung, Histogramm usw.

Pyplot

Pyplot ist ein Matplotlib-Modul, das eine MATLAB-ähnliche Schnittstelle bereitstellt. Pyplot bietet Funktionen, die mit der Figur interagieren, d. h. eine Figur erstellen, den Plot mit Beschriftungen versehen und einen Plotbereich in einer Figur erstellen.

Python3
# Python program to show pyplot module import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) plt.axis([0, 6, 0, 20]) plt.show() 

Ausgabe:

Balkendiagramm

A Balkengrundstück oder Balkendiagramm ist ein Diagramm, das die Datenkategorie mit rechteckigen Balken darstellt, deren Länge und Höhe proportional zu den Werten ist, die sie darstellen. Die Balkendiagramme können horizontal oder vertikal dargestellt werden. Ein Balkendiagramm beschreibt die Vergleiche zwischen den einzelnen Kategorien. Es kann mit der Methode bar() erstellt werden.

Python Matplotlib-Balkendiagramm

Hier verwenden wir nur den Iris-Datensatz

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') # This will plot a simple bar chart plt.bar(df['Species'], df['SepalLengthCm']) # Title to the plot plt.title('Iris Dataset') # Adding the legends plt.legend(['bar']) plt.show() 

Ausgabe:

Balkendiagramm mit Matplotlib-Bibliothek

Balkendiagramm mit Matplotlib-Bibliothek

Histogramme

A Histogramm wird im Wesentlichen zur Darstellung von Daten in Form einiger Gruppen verwendet. Es handelt sich um eine Art Balkendiagramm, bei dem die X-Achse die Bin-Bereiche darstellt, während die Y-Achse Informationen über die Häufigkeit liefert. Um ein Histogramm zu erstellen, besteht der erste Schritt darin, einen Abschnitt der Bereiche zu erstellen, dann den gesamten Wertebereich auf eine Reihe von Intervallen zu verteilen und die Werte zu zählen, die in jedes der Intervalle fallen. Bins werden eindeutig als aufeinanderfolgende, nicht überlappende Intervalle von Variablen identifiziert. Der hist() Die Funktion wird verwendet, um ein Histogramm von x zu berechnen und zu erstellen.

Python Matplotlib-Histogramm

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.hist(df['SepalLengthCm']) # Title to the plot plt.title('Histogram') # Adding the legends plt.legend(['SepalLengthCm']) plt.show() 

Ausgabe:

Histplot unter Verwendung der Matplotlib-Bibliothek

Streudiagramm

Streudiagramme werden verwendet, um die Beziehung zwischen Variablen zu beobachten, und verwenden Punkte, um die Beziehung zwischen ihnen darzustellen. Der streuen() Die Methode in der Matplotlib-Bibliothek wird zum Zeichnen eines Streudiagramms verwendet.

Python Matplotlib-Streudiagramm

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.scatter(df['Species'], df['SepalLengthCm']) # Title to the plot plt.title('Scatter Plot') # Adding the legends plt.legend(['SepalLengthCm']) plt.show() 

Ausgabe:

Streudiagramm mit der Matplotlib-Bibliothek

Streudiagramm mit der Matplotlib-Bibliothek

Box-Plot

A Box-Plot ,Korrelation, auch Box- und Whisker-Plot genannt. Es ist eine sehr gute visuelle Darstellung, wenn es um die Messung der Datenverteilung geht. Zeigt die Medianwerte, Ausreißer und Quartile übersichtlich an. Das Verständnis der Datenverteilung ist ein weiterer wichtiger Faktor, der zu einer besseren Modellbildung führt. Wenn Daten Ausreißer aufweisen, ist der Boxplot eine empfohlene Methode, um diese zu identifizieren und die erforderlichen Maßnahmen zu ergreifen. Das Box- und Whisker-Diagramm zeigt, wie die Daten verteilt sind. Im Allgemeinen sind fünf Informationen im Diagramm enthalten

  • Das Minimum wird ganz links im Diagramm am Ende des linken „Schnurrhaars“ angezeigt.
  • Das erste Quartil, Q1, befindet sich ganz links in der Box (linker Whisker).
  • Der Median wird als Linie in der Mitte der Box angezeigt
  • Drittes Quartil, Q3, ganz rechts in der Box angezeigt (rechter Whisker)
  • Das Maximum befindet sich ganz rechts in der Box

Darstellung des Boxplots

Interquartilbereich

Interquartilbereich

Veranschaulichender Boxplot

Veranschaulichender Boxplot

Python Matplotlib Boxplot

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.boxplot(df['SepalWidthCm']) # Title to the plot plt.title('Box Plot') # Adding the legends plt.legend(['SepalWidthCm']) plt.show() 

Ausgabe:

Boxplot mit der Matplotlib-Bibliothek

Boxplot mit der Matplotlib-Bibliothek

Korrelations-Heatmaps

Eine 2D-Heatmap ist ein Datenvisualisierungstool, das dabei hilft, das Ausmaß des Phänomens in Form von Farben darzustellen. Eine Korrelations-Heatmap ist eine Heatmap, die eine 2D-Korrelationsmatrix zwischen zwei diskreten Dimensionen zeigt und dabei farbige Zellen verwendet, um Daten aus normalerweise einer monochromatischen Skala darzustellen. Die Werte der ersten Dimension erscheinen als Zeilen der Tabelle, während die zweite Dimension eine Spalte ist. Die Farbe der Zelle ist proportional zur Anzahl der Messungen, die mit dem Dimensionswert übereinstimmen. Dies macht Korrelations-Heatmaps ideal für die Datenanalyse, da sie Muster leicht lesbar machen und die Unterschiede und Variationen in denselben Daten hervorheben. Eine Korrelations-Heatmap wird wie eine normale Heatmap durch einen Farbbalken unterstützt, der die Daten leicht lesbar und verständlich macht.

Notiz: Die Daten müssen hier mit der corr()-Methode übergeben werden, um eine Korrelations-Heatmap zu generieren. Außerdem eliminiert corr() selbst Spalten, die beim Generieren einer Korrelations-Heatmap keinen Nutzen haben, und wählt diejenigen aus, die verwendet werden können.

Python Matplotlib Korrelations-Heatmap

Python3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.imshow(df.corr() , cmap = 'autumn' , interpolation = 'nearest' ) plt.title('Heat Map') plt.show() 

Ausgabe:

Heatmap mit Matplotlib-Bibliothek

Heatmap mit Matplotlib-Bibliothek

Weitere Informationen zur Datenvisualisierung finden Sie in unseren folgenden Tutorials –

Top Artikel

Kategorie

Interessante Artikel