So kombinieren Sie CSV-Dateien in Python

So Kombinieren Sie Csv Dateien In Python



Manchmal befindet sich der angegebene Datensatz nicht in einer einzelnen CSV-Datei. Sie befinden sich alle in verschiedenen Excel-Tabellen. Sie wissen bereits, dass es besser ist, alle Berechnungs- oder Vorverarbeitungsaktivitäten an einem einzigen Datensatz statt an mehreren Datensätzen durchzuführen. Es reduziert oder spart die Zeit, die wir für Vorverarbeitungsaufgaben aufwenden müssen. Auch als Datenanalyst oder Datenwissenschaftler werden Sie häufig von zahlreichen CSV-Dateien überlastet, die zusammengeführt werden müssen, bevor Sie überhaupt mit der Analyse oder Untersuchung der verfügbaren Daten beginnen. Andererseits ist es nicht immer möglich, dass alle Dateien aus einer einzigen oder derselben Datenquelle stammen und dieselben Spalten-/Variablennamen und Datenstrukturen haben. In diesem Beitrag lernen Sie, zwei oder mehr CSV-Dateien mit einer ähnlichen oder unterschiedlichen Spaltenstruktur zu kombinieren.

Warum CSV-Dateien kombinieren?

Ein Datensatz kann eine Sammlung oder Gruppe von Werten oder Zahlen sein, die sich auf ein bestimmtes Thema beziehen. Beispielsweise sind die Testergebnisse jedes Schülers in einer bestimmten Klasse ein Beispiel für einen Datensatz. Aufgrund der Größe großer Datensätze werden diese oft in separaten CSV-Dateien für verschiedene Kategorien gespeichert. Wenn wir beispielsweise einen Patienten auf eine bestimmte Krankheit untersuchen müssen, müssen wir alle Komponenten berücksichtigen, einschließlich Geschlecht, Krankenakte, Alter, Schweregrad der Krankheit usw. Folglich ist die Kombination von CSV-Daten erforderlich, um verschiedene Einflussfaktoren zu untersuchen Aspekte. Außerdem ist es besser, während der Berechnungs- oder Vorverarbeitungsaufgaben mit einem einzelnen Datensatz zu arbeiten und ihn zu verwalten, anstatt mit mehreren Datensätzen. Es spart Speicher und andere Rechenressourcen







Wie kombiniert man CSV-Dateien in Python?

Es gibt mehrere Möglichkeiten und Methoden, zwei oder mehr CSV-Dateien in Python zu kombinieren. Im folgenden Abschnitt verwenden wir die Funktionen append(), concat() und merge() usw., um CSV-Dateien in Pandas-Datenrahmen zu kombinieren, dann werden Datenrahmen in eine einzelne CSV-Datei konvertiert. Wir zeigen Ihnen, wie Sie mehrere CSV-Dateien mit einer ähnlichen oder variablen Spaltenstruktur kombinieren.



Methode Nr. 1: Kombinieren von CSVs mit ähnlichen Strukturen oder Spalten

Unser aktuelles Arbeitsverzeichnis enthält zwei CSV-Dateien, „test1“ und „test2“.



Beispiel Nr. 1: Verwendung der Funktion append()

Beide CSV-Dateien sind gleich aufgebaut. Die Funktion glob() wird in dieser Methode verwendet, um nur die CSV-Dateien im Arbeitsverzeichnis aufzulisten. Dann verwenden wir „pandas.DataFrame.append()“, um unsere CSV-Dateien (mit einer gemeinsamen Tabellenstruktur) zu lesen.





Ausgabe:



Mit der Append-Funktion haben wir jede Datenzeile aus test2.csv unter den Datenzeilen von test1.csv angehängt oder hinzugefügt, da ersichtlich ist, dass alle Datenzeilen der Datei kombiniert wurden. Um diesen Datenrahmen in CSV zu konvertieren, können wir die Funktion to_csv() verwenden.

Dadurch wird eine kombinierte CSV-Datei der CSV-Dateien „test1“ und „test2“ in unserem Arbeitsverzeichnis mit dem angegebenen Namen erstellt, d. h. „merged.csv“.

Beispiel Nr. 2: Verwendung der Funktion concat()

Zuerst importieren wir das Pandas-Modul. Die map-Methode liest jede CSV-Datei, die wir mit pd.read_csv() übergeben haben. Diese zugeordneten Dateien (CSV-Dateien) werden dann standardmäßig mithilfe der Funktion pd.concat() entlang der Zeilenachse kombiniert. Wenn wir CSV-Dateien horizontal kombinieren möchten, können wir axis=1 übergeben. Durch Angabe von Ignore Index = True werden auch fortlaufende Indexwerte für den kombinierten Datenrahmen erstellt.

pd.read_csv() wird innerhalb der concat()-Funktion übergeben, um die CSV-Dateien nach der Verkettung in den Pandas-Datenrahmen einzulesen.

Wir haben einen Datenrahmen mit kombinierten Daten aller CSV-Dateien im Arbeitsverzeichnis erhalten. Konvertieren wir es jetzt in eine CSV-Datei.

Unsere kombinierte CSV-Datei wird im aktuellen Verzeichnis erstellt.

Methode Nr. 2: Kombinieren von CSVs mit unterschiedlichen Strukturen oder Spalten

Wir haben das Kombinieren von CSV-Dateien mit denselben Spalten und derselben Struktur in der ersten Methode besprochen. Bei dieser Methode kombinieren wir CSV-Dateien mit unterschiedlichen Spalten und Strukturen.

Beispiel Nr. 1: Verwendung der Funktion merge()

Die Funktion „pandas.merge()“ im Pandas-Modul kann zwei CSV-Dateien kombinieren. Zusammenführen bezieht sich einfach auf das Kombinieren von zwei Datasets zu einem einzigen Dataset basierend auf gemeinsam genutzten Spalten oder Attributen.

Wir können Datenrahmen auf vier verschiedene Arten zusammenführen:

  • Innere
  • Recht
  • Links
  • Äußere

Um diese Arten von Zusammenführungen durchzuführen, verwenden wir zwei CSV-Dateien.

Beachten Sie, dass mindestens ein Attribut oder eine Spalte von beiden CSV-Dateien gemeinsam genutzt werden muss. Wie bereits erwähnt, werden die Spalte „Name“ und einige ihrer Attribute von beiden CSV-Dateien gemeinsam genutzt.

Mit Inner Join zusammenführen

Wenn Sie den Parameter how='inner' in der Funktion merge() angeben, werden die beiden Datenrahmen gemäß der angegebenen Spalte kombiniert und dann ein neuer Datenrahmen bereitgestellt, der nur die Zeilen mit identischen/gleichen Werten in beiden ursprünglichen Datenrahmen enthält.

Wie zu sehen ist, hat die Funktion beide CSV-Dateien zusammengeführt und die Zeilen basierend auf gemeinsamen Attributen der Spalte „Name“ zurückgegeben.

Mit Right Outer Join zusammenführen

Wenn der Parameter „how=’right“ angegeben ist, werden beide Datenrahmen basierend auf der Spalte kombiniert, die wir für den Parameter „on“ angegeben haben. Und ein neuer Datenrahmen, der alle Zeilen aus dem rechten Datenrahmen enthält, einschließlich aller Zeilen, für die der linke Datenrahmen keine Werte enthält, wird zurückgegeben, wobei der Spaltenwert des linken Datenrahmens auf NAN gesetzt ist.

Mit Left Outer Join zusammenführen

Wenn der Parameter als 'links' angegeben ist, werden die beiden Datenrahmen basierend auf der angegebenen Spalte mit dem Parameter 'on' kombiniert, wodurch ein neuer Datenrahmen zurückgegeben wird, der alle Zeilen aus dem linken Datenrahmen sowie alle Zeilen mit NAN enthält oder Nullwerte im rechten Datenrahmen und setzt den Spaltenwert des rechten Datenrahmens auf NAN.

Mit Full Outer Join zusammenführen

Wenn how='outer' angegeben ist, werden die beiden Datenrahmen abhängig von der für den Parameter 'on' angegebenen Spalte kombiniert, wobei ein neuer Datenrahmen zurückgegeben wird, der die Zeilen aus den Datenrahmen df1 und df2 enthält, und NAN als Wert für alle Zeilen festgelegt wird für die Daten in einem der Datenrahmen fehlen.

Beispiel Nr. 2: Kombinieren aller CSV-Dateien im Arbeitsverzeichnis

Bei dieser Methode verwenden wir das Glob-Modul, um alle CSV-Dateien in einem Pandas-DataFrame zu kombinieren. Alle Bibliotheken mussten zuerst importiert werden. Als Nächstes legen wir einen Pfad für jede CSV-Datei fest, die wir kombinieren möchten. Der Dateipfad ist das erste Argument für die Funktion os.path.join() im Beispiel unten, und das zweite Argument sind entweder die Pfadkomponenten oder .csv-Dateien, die verbunden werden sollen. Hier findet der Ausdruck „*.csv“ jede Datei im Arbeitsverzeichnis, die mit der Dateierweiterung „.csv“ endet, und gibt sie zurück. Die Funktion glob.glob(Dateien verbunden) akzeptiert eine Liste der Namen der zusammengeführten Dateien als Eingabe und gibt eine Liste aller zusammengeführten/kombinierten Dateien aus.

Dieses Skript gibt einen Datenrahmen mit kombinierten Daten aller CSV-Dateien in unserem Arbeitsverzeichnis zurück.

Dieser Datenrahmen wird in eine CSV-Datei umgewandelt, und die Funktion to_csv() wird für diese Umwandlung verwendet. Diese neue CSV-Datei besteht aus den kombinierten CSV-Dateien, die aus allen CSV-Dateien erstellt wurden, die im aktuellen Arbeitsverzeichnis gespeichert sind.

Fazit

In diesem Beitrag haben wir besprochen, warum wir CSV-Dateien kombinieren müssen. Wir haben besprochen, wie zwei oder mehr CSV-Dateien in Python kombiniert werden können. Wir haben dieses Tutorial in zwei Abschnitte unterteilt. Im ersten Abschnitt haben wir erklärt, wie Sie die Funktionen append() und concat() verwenden, um CSV-Dateien mit derselben Struktur oder denselben Spaltennamen zu kombinieren. Im zweiten Abschnitt haben wir die Methode merge(), os.path.join() und glob verwendet, um CSV-Dateien verschiedener Spalten und Strukturen zu kombinieren.