Entdecken Sie die Datenanalyse mit Python. Pandas DataFrames erleichtern die Bearbeitung Ihrer Daten, vom Auswählen oder Ersetzen von Spalten und Indizes bis hin zur Umgestaltung Ihrer Daten.
Pandas ist ein beliebtes Python-Paket für die Datenwissenschaft und das aus gutem Grund: Es bietet leistungsstarke, ausdrucksstarke und flexible Datenstrukturen, die unter anderem die Datenmanipulation und -analyse vereinfachen. Der DataFrame ist eine dieser Strukturen.
Dieses Tutorial behandelt Pandas-DataFrames, von grundlegenden Manipulationen bis hin zu fortgeschrittenen Operationen, indem es 11 der am häufigsten gestellten Fragen behandelt, damit Sie die Zweifel der Pythonistas vor Ihnen verstehen und vermeiden.
Probieren Sie für mehr Übung das erste Kapitel dieses Pandas DataFrames-Kurses kostenlos aus!
Was sind Pandas DataFrames?
Bevor Sie beginnen, fassen wir kurz zusammen, was DataFrames sind.
Wer mit R vertraut ist, kennt den Datenrahmen als Möglichkeit, Daten in rechteckigen Rastern zu speichern, die leicht übersichtlich sind. Jede Zeile dieser Raster entspricht Messungen oder Werten einer Instanz, während jede Spalte ein Vektor ist, der Daten für eine bestimmte Variable enthält. Das bedeutet, dass die Zeilen eines Datenrahmens nicht den gleichen Wertetyp enthalten müssen, aber enthalten können: Sie können numerisch, zeichenbasiert, logisch usw. sein.
Nun sind DataFrames in Python sehr ähnlich: Sie werden mit der Pandas -Bibliothek geliefert und sind als zweidimensionale beschriftete Datenstrukturen mit Spalten von möglicherweise unterschiedlichem Typ definiert.
Generell kann man sagen, dass der Pandas DataFrame aus drei Hauptkomponenten besteht: den Daten, dem Index und den Spalten.
- Erstens kann der DataFrame Daten enthalten, die:
- ein PandaDataFrame
- a Pandas Series: ein eindimensionales beschriftetes Array, das jeden Datentyp mit Achsenbeschriftungen oder Index aufnehmen kann. Ein Beispiel für ein Serienobjekt ist eine Spalte aus einem DataFrame.
- ein NumPy ndarray, das ein Datensatz oder strukturiert sein kann
- eine zweidimensionalendarray
- Wörterbücher eindimensionaler Art ndarray, Listen, Wörterbücher oder Reihen.
Beachten Sie den Unterschied zwischen np.ndarrayund np.array(). Ersterer ist ein tatsächlicher Datentyp, während letzterer eine Funktion zum Erstellen von Arrays aus anderen Datenstrukturen ist.
Strukturierte Arrays ermöglichen Benutzern die Bearbeitung der Daten durch benannte Felder: Im folgenden Beispiel wird ein strukturiertes Array aus drei Tupeln erstellt. Das erste Element jedes Tupels wird aufgerufen foound ist vom Typ int, während das zweite Element benannt wird barund ein Float ist.
Datensatz-Arrays erweitern dagegen die Eigenschaften strukturierter Arrays. Sie ermöglichen Benutzern den Zugriff auf Felder strukturierter Arrays per Attribut statt per Index. Unten sehen Sie, dass auf die fooWerte im r2Datensatz-Array zugegriffen wird.
Ein Beispiel:
- Neben den Daten können Sie auch den Index und die Spaltennamen für Ihren DataFrame angeben. Der Index gibt einerseits den Zeilenunterschied an, während die Spaltennamen den Spaltenunterschied angeben. Sie werden später sehen, dass diese beiden Komponenten des DataFrame bei der Manipulation Ihrer Daten nützlich sind.
Wenn Sie immer noch Zweifel an Pandas DataFrames haben und wissen möchten, wie sie sich von anderen Datenstrukturen wie einem NumPy-Array oder einer Serie unterscheiden, können Sie sich die folgende kleine Präsentation ansehen:
Beachten Sie , dass in diesem Beitrag die Bibliotheken, die Sie benötigen, in den meisten Fällen bereits geladen wurden. Die Pandas-Bibliothek wird normalerweise unter dem Alias importiert pd, während die NumPy-Bibliothek als geladen wird np. Denken Sie daran, dass Sie diesen Importschritt nicht vergessen sollten, wenn Sie in Ihrer eigenen Data Science-Umgebung codieren. Schreiben Sie ihn einfach wie folgt:
Nachdem nun keine Zweifel mehr darüber bestehen, was DataFrames sind, was sie können und wie sie sich von anderen Strukturen unterscheiden, ist es an der Zeit, die häufigsten Fragen der Benutzer zur Arbeit mit ihnen zu beantworten!
1. So erstellen Sie einen Pandas DataFrame
Natürlich ist das Erstellen Ihrer DataFrames der erste Schritt bei fast allem, was Sie tun möchten, wenn es um die Datenbereinigung in Python geht. Manchmal möchten Sie von vorne beginnen, aber Sie können auch andere Datenstrukturen wie Listen oder NumPy-Arrays in Pandas DataFrames konvertieren. In diesem Abschnitt behandeln wir nur Letzteres. Wenn Sie jedoch mehr über das Erstellen leerer DataFrames lesen möchten, die Sie später mit Daten füllen können, gehen Sie zu Abschnitt 7.
Unter den vielen Dingen, die als Eingabe zum Erstellen eines „DataFrame“ dienen können, ndarrayist ein NumPy eines davon. Um einen Datenrahmen aus einem NumPy-Array zu erstellen, können Sie ihn einfach DataFrame()im dataArgument an die Funktion übergeben.
Beachten Sie, wie die obigen Codeblöcke Elemente aus dem NumPy-Array auswählen, um den DataFrame zu erstellen: Sie wählen zuerst die Werte aus, die in den Listen enthalten sind, die mit Row1und beginnen Row2, dann wählen Sie den Index oder die Zeilennummern Row1und Row2und anschließend die Spaltennamen Col1und aus Col2.
Als nächstes sehen Sie auch, dass wir im obigen Beispiel eine kleine Auswahl der Daten gedruckt haben. Dies funktioniert genauso wie das Unterteilen von 2D-NumPy-Arrays: Sie geben zuerst die Zeile an, in der Sie nach Ihren Daten suchen möchten, dann die Spalte. Vergessen Sie nicht, dass die Indizes bei 0 beginnen! dataIm obigen Beispiel suchen Sie nämlich in den Zeilen vom Index 1 bis zum Ende und wählen alle Elemente aus, die nach Index 1 kommen. Als Ergebnis wählen Sie am Ende 1, 2, 3und aus 4.
Dieser Ansatz zum Erstellen von DataFrames ist für alle Strukturen gleich, die DataFrame()als Eingabe verwendet werden können.
Siehe das Beispiel unten:
Denken Sie daran , dass die Pandas-Bibliothek bereits als importiert wurde pd.
Beachten Sie, dass der Index Ihrer Serie (und Ihres DataFrame) die Schlüssel des ursprünglichen Wörterbuchs enthält, diese jedoch sortiert sind: Belgien hat den Index bei 0, während die Vereinigten Staaten den Index bei 3 haben.
Nachdem Sie Ihren DataFrame erstellt haben, möchten Sie vielleicht noch etwas mehr darüber erfahren. Sie können die shapeEigenschaft oder die len()Funktion in Kombination mit der .indexEigenschaft verwenden:
Diese beiden Optionen geben Ihnen leicht unterschiedliche Informationen zu Ihrem DataFrame: Die shapeEigenschaft gibt Ihnen die Abmessungen Ihres DataFrame an. Das bedeutet, dass Sie die Breite und Höhe Ihres DataFrame erfahren. Andererseits gibt Ihnen die len()Funktion in Kombination mit der indexEigenschaft nur Informationen zur Höhe Ihres DataFrame.
Das alles ist allerdings absolut nichts Außergewöhnliches, da Sie die indexImmobilie ausdrücklich angeben.
Sie können auch verwenden, df[0].count()um mehr über die Höhe Ihres DataFrames zu erfahren, aber dadurch werden die NaNWerte (falls vorhanden) ausgeschlossen. Aus diesem Grund .count()ist der Aufruf Ihres DataFrames nicht immer die bessere Option.
Wenn Sie weitere Informationen zu Ihren DataFrame-Spalten wünschen, können Sie jederzeit ausführen list(my_dataframe.columns.values).
Grundlegende DataFrame-Operationen
Nachdem Sie Ihre Daten nun in eine praktischere Pandas DataFrame-Struktur eingefügt haben, ist es Zeit, mit der eigentlichen Arbeit zu beginnen!
Dieser erste Abschnitt führt Sie durch die ersten Schritte der Arbeit mit DataFrames in Python. Er behandelt die grundlegenden Operationen, die Sie an Ihrem neu erstellten DataFrame durchführen können: Hinzufügen, Auswählen, Löschen, Umbenennen und mehr.
2. So wählen Sie einen Index oder eine Spalte aus einem Pandas DataFrame aus
Bevor Sie mit dem Hinzufügen, Löschen und Umbenennen der Komponenten Ihres DataFrames beginnen, müssen Sie zunächst wissen, wie Sie diese Elemente auswählen können. Also, wie machen Sie das?
Auch wenn Sie sich vielleicht noch daran erinnern, wie es im vorherigen Abschnitt geht: Einen Index, eine Spalte oder einen Wert aus Ihrem DataFrame auszuwählen, ist nicht so schwer, ganz im Gegenteil. Es ähnelt dem, was Sie in anderen Sprachen (oder Paketen!) sehen, die für die Datenanalyse verwendet werden. Wenn Sie nicht überzeugt sind, beachten Sie Folgendes:
In R verwenden Sie die Notation [,], um auf die Werte des Datenrahmens zuzugreifen.
Nehmen wir nun an, Sie haben einen DataFrame wie diesen:
Und Sie möchten auf den Wert zugreifen, der sich am Index 0 in Spalte „A“ befindet.
Um Ihren Wert zurückzuerhalten, gibt es verschiedene Möglichkeiten 1:
Die wichtigsten, die Sie sich merken sollten, sind ohne Zweifel .loc[]und .iloc[]. Die subtilen Unterschiede zwischen diesen beiden werden in den nächsten Abschnitten erläutert.
Genug fürs Erste zum Auswählen von Werten aus Ihrem DataFrame. Wie sieht es mit dem Auswählen von Zeilen und Spalten aus? In diesem Fall würden Sie Folgendes verwenden:
Für den Moment reicht es zu wissen, dass Sie auf die Werte entweder über ihre Bezeichnung oder über ihre Position im Index oder in der Spalte zugreifen können. Wenn Sie dies nicht sehen, sehen Sie sich noch einmal die kleinen Unterschiede in den Befehlen an: Einmal sehen Sie [0][0], das andere Mal sehen Sie , [0,’A‘]um Ihren Wert abzurufen 1.
3. So fügen Sie einem Pandas DataFrame einen Index, eine Zeile oder eine Spalte hinzu
Nachdem Sie nun gelernt haben, wie Sie einen Wert aus einem DataFrame auswählen, ist es an der Zeit, mit der eigentlichen Arbeit zu beginnen und einen Index, eine Zeile oder eine Spalte hinzuzufügen!
Hinzufügen eines Indext zu einem DataFrame
Wenn Sie einen DataFrame erstellen, haben Sie die Möglichkeit, dem Argument „Index“ Eingaben hinzuzufügen, um sicherzustellen, dass Sie den gewünschten Index haben. Wenn Sie dies nicht angeben, hat Ihr DataFrame standardmäßig einen numerisch bewerteten Index, der bei 0 beginnt und bis zur letzten Zeile Ihres DataFrames reicht.
Aber auch wenn Ihr Index automatisch für Sie angegeben wird, können Sie eine Ihrer Spalten wiederverwenden und zu Ihrem Index machen. Sie können dies ganz einfach tun, indem Sie set_index() für Ihren DataFrame aufrufen. Probieren Sie es unten aus!
Hinzufügen von Zeilen zu einem DataFrame
Bevor Sie zur Lösung kommen, sollten Sie sich zunächst mit dem Konzept von loc und dessen Unterschied zu anderen Indexierungsattributen wie .iloc[] und .ix[] vertraut machen:
- .loc[] arbeitet mit den Beschriftungen Ihres Index. Das bedeutet, dass Sie, wenn Sie loc[2] eingeben, nach den Werten Ihres DataFrame suchen, die einen Index mit der Beschriftung 2 haben.
- .iloc[] arbeitet mit den Positionen in Ihrem Index. Das heißt, wenn Sie iloc[2] eingeben, suchen Sie nach den Werten Ihres DataFrame, die sich am Index „2“ befinden.
- .ix[] ist ein komplexerer Fall: Wenn der Index ganzzahlig ist, übergeben Sie ein Label an .ix[]. ix[2] bedeutet dann, dass Sie in Ihrem DataFrame nach Werten suchen, die einen Index mit der Bezeichnung 2 haben. Das ist genau wie .loc[]! Wenn Ihr Index jedoch nicht ausschließlich ganzzahlig ist, arbeitet ix mit Positionen, genau wie .iloc[].
Das alles mag sehr kompliziert erscheinen. Lassen Sie uns das Ganze anhand eines kleinen Beispiels veranschaulichen:
Beachten Sie, dass Sie in diesem Fall ein Beispiel für einen DataFrame verwendet haben, der nicht ausschließlich auf Ganzzahlen basiert, damit Sie die Unterschiede leichter verstehen können. Sie sehen deutlich, dass die Übergabe von 2 an .loc[]oder .iloc[]/.ix[]nicht dasselbe Ergebnis zurückgibt!
- Sie wissen, dass .loc[] die Werte bei Label 2 ansieht. Das Ergebnis, das Sie zurückbekommen, ist
- Sie wissen auch, dass .iloc[]wir uns die Positionen im Index ansehen werden. Wenn Sie übergeben 2, erhalten Sie Folgendes zurück:
- Da der Index nicht nur ganze Zahlen enthält, .ix[]verhält sich ilocund die Positionen im Index werden betrachtet. Sie erhalten dasselbe Ergebnis wie .iloc[].
Nachdem nun der Unterschied zwischen .iloc[]und .loc[]klar .ix[]ist, können Sie mit dem Hinzufügen von Zeilen zu Ihrem DataFrame beginnen!
Tipp : Als Konsequenz dessen, was Sie gerade gelesen haben, verstehen Sie jetzt auch, dass die allgemeine Empfehlung lautet, .locZeilen in Ihren DataFrame einzufügen. Denn wenn Sie verwenden df.ix[], könnten Sie versuchen, mit dem Indexwert auf einen Index mit numerischem Wert zu verweisen und versehentlich eine vorhandene Zeile Ihres DataFrame zu überschreiben. Das sollten Sie vermeiden!
Schauen Sie sich den Unterschied noch einmal im folgenden DataFrame an:
Sie verstehen, warum das alles verwirrend sein kann, nicht wahr?
Hinzufügen einer Spalte zu Ihrem DataFrame
In manchen Fällen möchten Sie Ihren Index zu einem Teil Ihres DataFrame machen. Sie können dies ganz einfach tun, indem Sie eine Spalte aus Ihrem DataFrame nehmen oder auf eine Spalte verweisen, die Sie noch nicht erstellt haben, und sie der .indexEigenschaft zuweisen, und zwar wie folgt:
Mit anderen Worten, Sie sagen Ihrem DataFrame, dass es die Spalte Aals Index verwenden soll.
Wenn Sie jedoch Spalten an Ihren DataFrame anhängen möchten , können Sie auch den gleichen Ansatz verfolgen wie beim Hinzufügen eines Index zu Ihrem DataFrame: Sie verwenden .loc[]oder .iloc[]. In diesem Fall fügen Sie einem vorhandenen DataFrame mithilfe von eine Serie hinzu .loc[]:
Denken Sie daran, dass ein Serienobjekt einer Spalte eines DataFrame sehr ähnlich ist. Das erklärt, warum Sie problemlos eine Serie zu einem vorhandenen DataFrame hinzufügen können. Beachten Sie auch, dass die zuvor gemachte Beobachtung .loc[]auch dann gültig bleibt, wenn Sie Ihrem DataFrame Spalten hinzufügen!
Zurücksetzen des Index Ihres DataFrame
Wenn Ihr Index nicht ganz Ihren Wünschen entspricht, können Sie ihn zurücksetzen. Dies ist ganz einfach mit möglich .reset_index(). Sie sollten jedoch trotzdem aufpassen, da Sie mehrere Argumente übergeben können, die über den Erfolg des Zurücksetzens entscheiden können:
Sie können versuchen, das dropArgument inplaceim obigen Beispiel durch zu ersetzen und sehen, was passiert!
Beachten Sie, wie Sie das dropArgument verwenden, um anzugeben, dass Sie den vorhandenen Index entfernen möchten. Wenn Sie verwendet hätten inplace, wird der ursprüngliche Index mit Floats als zusätzliche Spalte zu Ihrem DataFrame hinzugefügt.
4. So löschen Sie Indizes, Zeilen oder Spalten aus einem Pandas-Datenrahmen
Nachdem Sie nun gesehen haben, wie Sie Indizes, Zeilen und Spalten zu Ihrem DataFrame auswählen und hinzufügen, ist es an der Zeit, einen anderen Anwendungsfall in Betracht zu ziehen: das Entfernen dieser drei aus Ihrer Datenstruktur.
Löschen eines Indexes aus Ihrem DataFrame
Wenn Sie den Index aus Ihrem DataFrame entfernen möchten, sollten Sie dies noch einmal überlegen, da DataFrames und Serien immer einen Index haben.
Was Sie jedoch *tun können*, ist beispielsweise:
- den Index Ihres DataFrames zurücksetzen (gehen Sie zurück zum vorherigen Abschnitt, um zu sehen, wie das geht) oder
- Entfernen Sie den Indexnamen, falls vorhanden, indem Sie ausführen del df.index.name.
- Entfernen Sie doppelte Indexwerte, indem Sie den Index zurücksetzen, die Duplikate der Indexspalte löschen, die Ihrem DataFrame hinzugefügt wurde, und diese Spalte ohne Duplikate wieder als Index einsetzen.
- und zum Schluss entfernen Sie einen Index und damit eine Zeile. Dies wird in diesem Tutorial weiter unten näher erläutert.
Nachdem Sie nun wissen, wie Sie einen Index aus Ihrem DataFrame entfernen, können Sie mit dem Entfernen von Spalten und Zeilen fortfahren!
Löschen einer Spalte aus Ihrem DataFrame
Um (eine Auswahl von) Spalten aus Ihrem DataFrame zu entfernen, können Sie die folgende drop()Methode verwenden:
drop()Sie denken jetzt vielleicht: Das ist nicht so einfach. Der Methode werden einige zusätzliche Argumente übergeben .
- Das axisArgument ist entweder 0, wenn es Zeilen angibt, und 1, wenn es zum Löschen von Spalten verwendet wird.
- Sie können es inplaceauf „True“ setzen, um die Spalte zu löschen, ohne den DataFrame neu zuweisen zu müssen.
Entfernen einer Zeile aus Ihrem DataFrame
Sie können doppelte Zeilen aus Ihrem DataFrame entfernen, indem Sie ausführen df.drop_duplicates(). Sie können auch Zeilen aus Ihrem DataFrame entfernen und dabei nur die doppelten Werte berücksichtigen, die in einer Spalte vorhanden sind.
Schauen Sie sich dieses Beispiel an:
Wenn für die Löschung, die Sie durchführen möchten, kein Eindeutigkeitskriterium vorhanden ist, können Sie die drop()Methode verwenden, bei der Sie mit der indexEigenschaft den Index der Zeilen angeben, die Sie aus Ihrem DataFrame entfernen möchten:
Nach diesem Befehl möchten Sie den Index möglicherweise erneut zurücksetzen.
Tipp: Versuchen Sie, den Index des resultierenden DataFrame selbst zurückzusetzen! Vergessen Sie nicht, das dropArgument zu verwenden, wenn Sie es für notwendig erachten.
5. So benennen Sie den Index oder die Spalten eines Pandas DataFrame um
Um den Spalten bzw. den Indexwerten Ihres Dataframes einen anderen Wert zu geben, verwenden Sie am besten die .rename()Methode.
Tipp : Versuchen Sie, das inplaceArgument in der ersten Aufgabe (Umbenennen Ihrer Spalten) zu ändern Falseund sehen Sie, was das Skript jetzt als Ergebnis rendert. Sie sehen, dass der DataFrame jetzt beim Umbenennen der Spalten nicht neu zugewiesen wurde. Infolgedessen verwendet die zweite Aufgabe den ursprünglichen DataFrame als Eingabe und nicht den, den Sie gerade von der ersten rename()Operation zurückerhalten haben.
Über die Pandas DataFrame-Grundlagen hinaus
Nachdem Sie nun einen ersten Fragensatz zu Pandas DataFrames durchgegangen sind, ist es an der Zeit, über die Grundlagen hinauszugehen und richtig Hand anzulegen, denn DataFrames bieten weitaus mehr als das, was Sie im ersten Abschnitt gesehen haben.
6. So formatieren Sie die Daten in Ihrem Pandas DataFrame
Meistens möchten Sie auch einige Operationen an den tatsächlichen Werten durchführen können, die in Ihrem DataFrame enthalten sind. In den folgenden Abschnitten werden verschiedene Möglichkeiten beschrieben, wie Sie die Werte Ihres Pandas-DataFrames formatieren können.
Ersetzen aller Vorkommen eines Strings in einem DataFrame
Um bestimmte Zeichenfolgen in Ihrem DataFrame zu ersetzen, können Sie ganz einfach Folgendes verwenden replace(): Übergeben Sie die Werte, die Sie ändern möchten, gefolgt von den Werten, durch die Sie sie ersetzen möchten.
Genau wie dieser:
Beachten Sie, dass es auch ein Argument gibt regex, das Ihnen enorm helfen kann, wenn Sie mit seltsamen Zeichenfolgenkombinationen konfrontiert sind:
Kurz gesagt, dies replace()ist hauptsächlich das, womit Sie sich befassen müssen, wenn Sie Werte oder Zeichenfolgen in Ihrem DataFrame durch andere ersetzen möchten!
Entfernen von Teilen aus Zeichenfolgen in den Zellen Ihres DataFrame
Das Entfernen unerwünschter Teile von Saiten ist mühsam. Glücklicherweise gibt es für dieses Problem eine einfache Lösung!
Sie verwenden map()in der Spalte, resultum die Lambda-Funktion auf jedes Element oder elementweise auf die Spalte anzuwenden. Die Funktion selbst nimmt den Zeichenfolgenwert und entfernt das +oder -, das sich auf der linken Seite befindet, und entfernt auch alle sechs aAbBcCauf der rechten Seite microsoft fabric.
Aufteilen von Text in einer Spalte in mehrere Zeilen in einem DataFrame
Dies ist eine etwas schwierigere Formatierungsaufgabe. Der nächste Codeabschnitt führt Sie jedoch durch die Schritte:
Kurz gesagt, Sie tun Folgendes:
- Zunächst untersuchen Sie den vorliegenden DataFrame. Sie sehen, dass die Werte in der letzten Zeile und in der letzten Spalte etwas zu lang sind. Offenbar gibt es zwei Tickets, weil ein Gast eine Begleitperson zum Konzert mitgenommen hat.
- Du nimmst die TicketSpalte aus dem DataFrame dfund fügst Zeichenfolgen in ein Leerzeichen ein. Dadurch stellst du sicher, dass die beiden Tickets am Ende in zwei getrennten Zeilen landen. Als nächstes nimmst du diese vier Werte (die vier Ticketnummern) und fügst sie in ein Series-Objekt ein:
- Das scheint immer noch nicht ganz richtig zu sein. Sie haben NaNdort Werte! Sie müssen die Serie stapeln, um sicherzustellen, dass Sie NaNin der resultierenden Serie keine Werte haben.
- Als nächstes sehen Sie, dass Ihre Serie gestapelt ist.
- Das ist auch nicht ideal. Deshalb senkst du den Pegel, um ihn mit dem DataFrame abzugleichen:
- Das ist, wonach Sie suchen.
- Transformieren Sie Ihre Serie in einen DataFrame, um sicherzustellen, dass Sie sie wieder mit Ihrem ursprünglichen DataFrame verbinden können. Um jedoch Duplikate in Ihrem DataFrame zu vermeiden, können Sie die ursprüngliche TicketSpalte löschen.
Anwenden einer Funktion auf die Spalten oder Zeilen Ihres Pandas DataFrame
Möglicherweise möchten Sie die Daten in Ihrem DataFrame anpassen, indem Sie eine Funktion darauf anwenden. Beginnen wir mit der Beantwortung dieser Frage, indem wir Ihre eigene Lambda-Funktion erstellen:
Tipp : Wenn Sie mehr über Funktionen in Python erfahren möchten, sollten Sie dieses Tutorial zu Python-Funktionen absolvieren .
Beachten Sie, dass Sie auch die Zeile Ihres DataFrame auswählen und die doublerLambda-Funktion darauf anwenden können. Denken Sie daran, dass Sie ganz einfach eine Zeile aus Ihrem DataFrame auswählen können, indem Sie .loc[]oder verwenden .iloc[].
Anschließend führen Sie etwa Folgendes aus, je nachdem, ob Sie Ihren Index basierend auf seiner Position oder basierend auf seiner Bezeichnung auswählen möchten:
Beachten Sie, dass die apply()Funktion nur doublerentlang der Achse Ihres DataFrames angewendet wird. Das bedeutet, dass Sie entweder den Index oder die Spalten als Ziel haben. Oder anders ausgedrückt, entweder eine Zeile oder eine Spalte.
Wenn Sie es jedoch auf jedes Element oder elementweise anwenden möchten, können Sie die map()Funktion verwenden. Sie können die apply()Funktion im obigen Codeabschnitt einfach durch ersetzen map(). Vergessen Sie nicht, die doublerFunktion trotzdem daran zu übergeben, um sicherzustellen, dass Sie die Werte mit 2 multiplizieren.
Angenommen, Sie möchten diese Verdopplungsfunktion nicht nur auf die ASpalte Ihres DataFrames anwenden, sondern auf den gesamten DataFrame. In diesem Fall können Sie die Funktion auf jedes einzelne Element im gesamten DataFrame applymap()anwenden :doubler
Beachten Sie, dass wir in diesen Fällen mit Lambda-Funktionen oder anonymen Funktionen gearbeitet haben, die zur Laufzeit erstellt werden. Sie können jedoch auch Ihre eigene Funktion schreiben. Beispiel:
Wenn Sie weitere Informationen zum Kontrollfluss in Python wünschen , können Sie sich jederzeit unsere anderen Ressourcen ansehen.
7. So erstellen Sie einen leeren DataFrame
Die Funktion, die Sie verwenden werden, ist die Pandas- Dataframe()Funktion: Sie erfordert, dass Sie die Daten übergeben, die Sie eingeben möchten, die Indizes und die Spalten.
Denken Sie daran, dass die im Datenrahmen enthaltenen Daten nicht homogen sein müssen. Sie können unterschiedliche Datentypen haben!
Es gibt mehrere Möglichkeiten, wie Sie mit dieser Funktion einen leeren DataFrame erstellen können. Zunächst können Sie numpy.nanIhren Datenrahmen mit NaNs initialisieren. Beachten Sie, dass numpy.nander Typ vorhanden ist float.
Derzeit wird der Datentyp des Datenrahmens standardmäßig abgeleitet: Da numpy.nander Datenrahmen den Typ Float hat, enthält er auch Werte des Typs Float. Sie können den Datenrahmen jedoch auch zu einem bestimmten Typ zwingen, indem Sie das Attribut hinzufügen dtypeund den gewünschten Typ eingeben. Genau wie in diesem Beispiel:
Beachten Sie: Wenn Sie die Achsenbeschriftungen oder den Index nicht angeben, werden diese auf Grundlage allgemeingültiger Regeln aus den Eingabedaten erstellt.
8. Erkennt Pandas beim Importieren von Daten Daten?
Pandas kann es erkennen, aber Sie müssen ihm ein wenig nachhelfen: Fügen Sie das Argument hinzu, parse_dateswenn Sie Daten beispielsweise aus einer CSV-Datei (Comma-Separated Values) einlesen :
Es gibt jedoch immer seltsame Datums-/Uhrzeitformate.
Keine Sorge! In solchen Fällen können Sie Ihren eigenen Parser erstellen, der das Problem behebt. Sie könnten beispielsweise eine Lambda-Funktion erstellen, die Ihr DateTime übernimmt und es mit einer Formatzeichenfolge steuert.
9. Wann, warum und wie Sie Ihren Pandas DataFrame umgestalten sollten
Durch die Umformung Ihres DataFrames wird dieser so transformiert, dass die resultierende Struktur besser für Ihre Datenanalyse geeignet ist. Mit anderen Worten: Bei der Umformung geht es nicht so sehr um die Formatierung der im DataFrame enthaltenen Werte, sondern vielmehr um die Transformation seiner Form.
Dies beantwortet das Wann und Warum. Aber wie würden Sie Ihren DataFrame umgestalten?
Es gibt drei Möglichkeiten der Umformung, die bei Benutzern häufig Fragen aufwerfen: Schwenken, Stapeln bzw. Entstapeln und Schmelzen.
Pivotieren Ihres DataFrame
Mit dieser Funktion können Sie pivot()aus Ihrer ursprünglichen Tabelle eine neue abgeleitete Tabelle erstellen. Wenn Sie die Funktion verwenden, können Sie drei Argumente übergeben:
- values: Mit diesem Argument können Sie angeben, welche Werte Ihres ursprünglichen DataFrame Sie in Ihrer Pivot-Tabelle sehen möchten.
- columns: Was auch immer Sie an dieses Argument übergeben, wird eine Spalte in Ihrer resultierenden Tabelle.
- index: Was auch immer Sie an dieses Argument übergeben, wird zu einem Index in Ihrer resultierenden Tabelle.
Wenn Sie nicht konkret angeben, welche Werte in der resultierenden Tabelle enthalten sein sollen, pivotieren Sie nach mehreren Spalten:
Beachten Sie, dass Ihre Daten keine Zeilen mit doppelten Werten für die von Ihnen angegebenen Spalten enthalten dürfen. Wenn dies nicht der Fall ist, erhalten Sie eine Fehlermeldung. Wenn Sie die Eindeutigkeit Ihrer Daten nicht sicherstellen können, sollten Sie pivot_tablestattdessen die folgende Methode verwenden:
Beachten Sie das zusätzliche Argument aggfunc, das an die Methode übergeben wird pivot_table. Dieses Argument gibt an, dass Sie eine Aggregatfunktion verwenden, mit der mehrere Werte kombiniert werden. In diesem Beispiel können Sie deutlich sehen, dass die meanFunktion verwendet wird.
Verwenden stack()und unstack()Umgestalten Ihres Pandas DataFrame
Sie haben bereits in Abschnitt 5 ein Beispiel für das Stapeln gesehen. Im Wesentlichen erinnern Sie sich vielleicht noch daran, dass Sie einen DataFrame höher machen, wenn Sie ihn stapeln. Sie verschieben den innersten Spaltenindex, sodass er zum innersten Zeilenindex wird. Sie geben einen DataFrame mit einem Index mit einer neuen innersten Ebene von Zeilenbeschriftungen zurück.
Wenn Sie mit der Funktionsweise von nicht vertraut sind, gehen Sie zurück zur vollständigen Anleitung in Abschnitt 5 stack().
Die Umkehrung des Stapelns wird Entstapeln genannt. Ähnlich wie stack()verwenden Sie , unstack()um den innersten Zeilenindex so zu verschieben, dass er zum innersten Spaltenindex wird.
Eine Erklärung zum Pivotieren, Stapeln und Entstapeln von Pandas finden Sie in unserem Kurs „Daten mit Pandas neu formen“ .
Gestalten Sie Ihren DataFrame neu mitmelt()
Das Schmelzen wird in Fällen als nützlich erachtet, in denen Sie über Daten verfügen, die eine oder mehrere Spalten aufweisen, die Identifikationsvariablen sind, während alle anderen Spalten als Messvariablen betrachtet werden.
Diese Messgrößen werden alle auf die Zeilenachse „entpivotiert“. Das heißt, während die Messgrößen über die Breite des DataFrames verteilt waren, sorgt die Schmelze dafür, dass sie in dessen Höhe platziert werden. Oder noch anders ausgedrückt: Ihr DataFrame wird nun länger statt breiter.
Als Ergebnis haben Sie zwei Spalten ohne Bezeichner, nämlich „Variable“ und „Wert“.
Lassen Sie uns dies anhand eines Beispiels veranschaulichen:
Wenn Sie nach weiteren Möglichkeiten zur Umgestaltung Ihrer Daten suchen, sehen Sie sich die Dokumentation an .
10. So iterieren Sie über einen Pandas DataFrame
Du kannst mit Hilfe einer forSchleife in Kombination mit einem iterrows()Aufruf deines DataFrames über die Zeilen deines DataFrames iterieren:
iterrows()ermöglicht Ihnen, Ihre DataFrame-Zeilen effizient als (Index, Serie)-Paare zu durchlaufen. Mit anderen Worten, es gibt Ihnen als Ergebnis (Index, Zeile)-Tupel.
11. So schreiben Sie einen Pandas DataFrame in eine Datei
Wenn Sie die Datenbearbeitung und -manipulation mit Pandas abgeschlossen haben, möchten Sie den DataFrame möglicherweise in ein anderes Format exportieren. In diesem Abschnitt werden zwei Möglichkeiten zum Ausgeben Ihres Pandas-DataFrame in eine CSV- oder Excel-Datei beschrieben.
Einen DataFrame als CSV ausgeben
Um einen DataFrame als CSV-Datei zu schreiben, können Sie Folgendes verwenden to_csv():
Dieser Codeabschnitt scheint recht einfach zu sein, aber hier beginnen für die meisten Leute die Schwierigkeiten, da Sie spezielle Anforderungen an die Ausgabe Ihrer Daten haben. Vielleicht möchten Sie kein Komma als Trennzeichen oder Sie möchten eine bestimmte Kodierung angeben.
Keine Sorge! Sie können einige zusätzliche Argumente übergeben, um to_csv()sicherzustellen, dass Ihre Daten so ausgegeben werden, wie Sie es möchten!
- Um durch einen Tabulator zu trennen, verwenden Sie das sepArgument:
- Um eine bestimmte Zeichenkodierung zu verwenden, können Sie das encodingfolgende Argument verwenden:
- Des Weiteren kannst Du angeben, wie Deine NaNbzw. fehlende Werte dargestellt werden sollen, ob Du die Kopfzeile ausgeben möchtest oder nicht, ob Du die Zeilennamen ausschreiben möchtest oder nicht, ob Du eine Komprimierung möchtest, die Optionen kannst Du nachlesen .
Schreiben eines DataFrame in Excel
Ähnlich wie bei der Ausgabe Ihres DataFrame in CSV können Sie auch to_excel()Ihre Tabelle in Excel schreiben. Allerdings ist es etwas komplizierter:
Beachten Sie jedoch, dass Sie, genau wie bei to_csv(), viele zusätzliche Argumente wie startcol, startrow, usw. haben, um sicherzustellen, dass Sie Ihre Daten korrekt ausgeben. Weitere Informationen zum Importieren und Exportieren von Daten aus CSV-Dateien mit Pandas finden Sie in unserem Tutorial.
Wenn Sie jedoch weitere Informationen zu IO-Tools in Pandas wünschen, sehen Sie sich die Dokumentation zu Pandas DataFrames in Excel an .
Python für Data Science ist mehr als DataFrames
Das ist es! Sie haben das Pandas DataFrame-Tutorial erfolgreich abgeschlossen!
Die Antworten auf die 11 häufig gestellten Pandas-Fragen stellen wesentliche Funktionen dar, die Sie zum Importieren, Bereinigen und Bearbeiten Ihrer Daten für Ihre Data Science-Arbeit benötigen. Sind Sie nicht sicher, ob Sie sich ausreichend mit dieser Materie befasst haben? Unser Kurs „Daten in Python importieren“ hilft Ihnen weiter! Wenn Sie den Dreh raus haben, möchten Sie vielleicht Pandas in einem realen Projekt in Aktion sehen. Die Tutorial-Reihe „Die Bedeutung der Vorverarbeitung in der Data Science“ und „Die Machine Learning Pipeline“ ist ein Muss, und der offene Kurs „ Einführung in Python und Machine Learning“ ist ein Muss.