Pandas Chunkize

Pandas Chunkize
Datenwissenschaftler oder Fachkräfte müssen häufig Datensätze verarbeiten, deren Größe viel größer ist als der Speicher ihres lokalen Systems. Es ist schwierig herauszufinden, wie man den Speicher effektiv verwaltet und gleichzeitig die effektivste Verwendung von Daten ermöglicht. Wenn Sie mit einem großen Datenblock, der nicht in den Speicher passen. Durch die Auswahl dieser Option wird ein Iteratorobjekt erstellt, mit dem die verschiedenen Brocken durch die verschiedenen Brocken iteriert werden können und die Filterung oder Analyse auf die gleiche Weise durchführen kann, wie beim Laden des gesamten Datensatz.

So laden Sie große Daten mithilfe der Pandas -Chunk -Größe

Pandas ist ein leistungsstarkes und benutzerfreundliches Open-Source-Tool für die Datenanalyse auf Python, das die Import und Visualisierung von Daten in verschiedenen Formaten ermöglicht, wie z .TSV, .CSV, .db und .TXT -Dateien. Nur ".CSV -Dateien werden in den folgenden Beispielen verwendet, obwohl die Technik für andere Dateiformate gleich ist. Die Funktion read_csv () wird verwendet, um CSV -Dateien zu lesen.

Parameter:

filepath_or_bufferstr: Ein gültiger String -Pfad kann verwendet werden. Außerdem könnte eine URL in der Saite sein. Die akzeptablen URL -Schemata sind FTP, S3, HTTP, GS und Datei. Es sollte einen Host für Datei -URLs geben. Hier ist ein Beispiel für eine lokale Datei: Datei:/localhost/path/to/table.CSV.

Iteratorbool: Gibt ein TextFileReader -Objekt zurück, um die Datei durch die Datei zu iterieren oder Stücke mit Get_Chunk () abzurufen.

Chunkize: Akzeptiert int; Es ist ein optionaler Parameter. Für die Iteration gibt es ein TextFileReader -Objekt zurück.

Das Chunkize -Argument der Funktion read_csv () ist diejenige, an der wir uns für diesen Artikel interessieren. Technisch gesehen bezieht sich ChunkSize darauf, wie viele Zeilen pro Sekunde Pandas aus einer Datei lesen. Wir können sagen, dass die ersten 100 Zeilen von Pandas geladen werden, wenn das Chunkize als 100 angegeben ist. Das zurückgegebene Objekt ist ein Textfileader, der iteriert werden muss, um die Daten abzurufen.

Beispiel Nr. 1: Laden Sie Daten mithilfe read_csv () ohne ChunkSize mit

In diesem Beispiel werden wir einen Datensatz mit a herunterladen .CSV-Dateierweiterung von einer Open-Source-Website. Sie können den erforderlichen Datensatz von mehreren Websites im Internet herunterladen. Um eine Datei in Pandas zu laden, importieren wir zuerst die Pandas -Bibliothek. Nach dem Importieren der Pandas werden wir die Funktion read_csv () verwenden, um die Datei in unserer aktuellen Umgebung zu laden. Eine CSV -Datei wird mithilfe der Funktion pandas read_csv () in das DataFrame -Format importiert.

Sie werden feststellen, dass wir zusammen mit Pandas auch eine PPRINT -Bibliothek importiert haben. Nach dem Import der Module haben wir unsere geladen .CSV -Datei durch Einlegen des Namens der Datei zusammen mit der Dateierweiterung in die PD.Read_csv () Funktion. Um unsere Spalten im DataFrame anzuzeigen, haben wir die PD verwendet.Spalten Attribut. Mit diesen Spaltenbezeichnungen können wir auf die Elemente eines Datenrahmens zugreifen und Datenmanipulation durchführen. Die „Pandas. Datenrahmen.Spalten ”Attribut” wird verwendet, um die einzelnen Spaltenbezeichnungen aus einem Datenrahmen abzurufen. Der .Das Formattribut kann verwendet werden, um die Anzahl der Spalten und Zeilen in unserem Datenrahmen anzuzeigen.

Der Wert „90836“ ist die Gesamtzahl der Zeilen in unserem Datenrahmen, wie oben gesehen, dass es zehn Spalten in unserem Datenrahmen gibt, i.e., "Bewertungen".

Beispiel Nr. 2: Laden Sie eine große Datenmenge mithilfe von ChunkSize in der Funktion read_csv ()

In diesem Beispiel werden wir einen anderen Datensatz aus dem Internet herunterladen. Die gleiche Funktion read_csv () wird verwendet, um die Datei zu laden. Aber diesmal werden wir in der Funktion einen Parameter „Chunkize“ angeben. Bevor wir unsere Funktion read_csv () verwenden, importieren wir die PANDAS- und PPRINT -Bibliotheken.

Zeigen wir die Gesamtzahl der Spalten und Zeilen in unserer Datensatzdatei an, ohne einen Chunkize -Parameter zu verwenden.

Wir haben den bereitgestellten Datensatz im vorherigen Beispiel gelesen und seine Details vorgestellt. Die vom Attribut "Form" zurückgegebenen Zeilen und Spalten sind 5704247 bzw. 5. Mit dem Attribut „Info“ werden auch Details zu den Zeilen und Spalten des Datensatzes angezeigt.

Wie wir sehen können, hat dieser Datensatz 5704247 Zeilen, und die Verarbeitung massiver Datensätze verwendet einen Großteil des RAM des Computers. Der Chunkize -Parameter unter diesen Umständen kann verwendet werden, um unsere Ressourcen zu speichern.

Ein TextFileReader -Objekt wird durch Verwendung des ChunkSize in der Funktion read_csv () zurückgegeben. Wenn der Parameter Chunkize an die Funktion read_csv () übergeben wird, wird ein Textfile -Reader -Leser erstellt. Die Originaldatei kann mit diesem Open-File-ähnlichen Objekt in Stücken gelesen werden. Innen erstellt der für Loop Iteratoren für solche Objekte, indem die ITER () -Methode angewendet wird. Wir erhalten einen Iterator, wenn wir das Chunkize -Argument anwenden. Um die Werte zu erhalten, können wir über dieses Objekt hinweg iterieren. Der Datensatz wird im vorherigen Beispiel in Datenbrocken mit den angegebenen Zeilen gelesen, da das Chunkize -Argument einen Wert lieferte. Der Chunkize -Parameter wurde für unseren Datensatz auf 1000000 angegeben, was zu sechs Iteratoren führte.

Beispiel Nr. 3: Ein weiteres Beispiel für Chunkize -Parameter

Wie bereits erwähnt, ist ChunkSize der Parameter, der in Python häufig zum Lesen großer Dateien oder Datensätze verwendet wird. ChunkSize teilt die Daten in Echtzeit auf, während sie in kleinere Abschnitte, die als Chunks bezeichnet werden, die Gesamtwirksamkeit des Programms erhöht. Wenn wir a lesen .CSV -Datei ohne diesen Parameter.

Pandas werden häufig zum Speichern einer großen Datenmenge verwendet. Sie ermöglichen eine einfache Lesbarkeit und den Zugriff auf Daten in kurzer Zeit. Die angegebene Datei (Bewertungen.CSV) hat Daten von 1048575 Patienten innerhalb von 1048575 und 4 Spalten. Wenn diese Datei von einem Programm ohne einen bestimmten Parameter gelesen wird, dauert es viel Zeit, um so viele Informationen zu verarbeiten, was das Programm weniger effizient macht. Wenn wir auf diese Art von Daten begegnen, verwenden wir Parameter wie ChunkSize. Chunkize -Parameter verwendet Iteratoren, um über einen bestimmten Container wie die Liste zu iterieren und mit verschiedenen Schleifen verbunden werden kann.

Im vorherigen Beispiel wird die Pandas -Datenstruktur zum Lesen und Speichern der Informationen verwendet, und ChunkSize wird ebenfalls verwendet, was über ein Objekt iteriert, um die Werte zu erhalten. Es liest unsere angegebene Datei in Datenabschnitte (Stücke) in Datenabschnitte (Stücke). Insbesondere für den angegebenen Datensatz wurden vier Iteratoren für das Chunkize von 250000 angegeben. Der Wert, der nach dem Lesen des Objekts zurückgegeben wird, ist nicht der Datenrahmen, sondern ein Parser von Pandas, ich.e., Pandas.io.Parser.TextFileReader. Diese sind für das Transversal über das Objekt und die Werte verantwortlich, die zum Ende führen. Das, was hier zu beachten ist, ist, dass die Spaltennummer für jeden Iterator gleich ist, was darauf hinweist, dass der Parameter „ChunkSize“ nur die Anzahl der Zeilen, nicht die Spalte, während der Iterator -Erstellung verwendet.

Abschluss

In diesem Tutorial haben wir gesehen, dass der Speicher ihrer lokalen Maschine die Größe der Datensätze, die Datenwissenschaftler normalerweise verwalten. Daher verwenden wir beim Lesen großer Datensätze das Chunkize -Argument, um den Datensatz in Datenstücke zu zerlegen. Nachdem Sie dieses Tutorial gelesen haben, können Sie möglicherweise das Chunkize -Argument selbst verwenden. Wir haben einige Beispiele implementiert, um Ihnen beizubringen, wie Sie Ihren Datensatz mit dem teilen können .CSV -Dateierweiterung in kleine Stücke.