CodeGym /Java Kurs /Python SELF DE /Zusammenführen von Daten aus mehreren Blättern und Excel-...

Zusammenführen von Daten aus mehreren Blättern und Excel-Dateien

Python SELF DE
Level 28 , Lektion 1
Verfügbar

1. Warum Daten zusammenführen?

In der modernen Datenwelt findet man selten alle benötigten Informationen in einer einzigen Datei. Meistens sind die Daten auf mehrere Tabellen und Dateien verteilt, und für eine vollständige Analyse müssen sie zusammengeführt werden. Zum Beispiel könntet ihr Daten über Verkäufe für jeden Monat in separaten Dateien haben. Um allgemeine Trends zu analysieren, müssen diese Daten in einer Tabelle zusammengeführt werden.

Außerdem hilft das Zusammenführen von Daten dabei:

  • Zeit beim manuellen Erstellen von Berichten zu sparen.
  • Die Anzahl der Fehler, die durch manuelles Übertragen von Daten entstehen, zu reduzieren.
  • Den Arbeitsprozess der Datenanalyse zu automatisieren.

2. Methoden zum Zusammenführen von Daten

Verkettung von Daten

Vertikales und horizontales Zusammenführen von Daten wird als Verkettung bezeichnet. Starten wir mit einem einfachen Beispiel: Wir haben zwei DataFrame, die wir zusammenführen möchten.

Python

import pandas as pd

# Erstellen wir zwei DataFrames mit ähnlicher Struktur
data1 = {
    'Produkt': ['Äpfel', 'Bananen'],
    'Verkäufe': [100, 150]
}

data2 = {
    'Produkt': ['Kirschen', 'Datteln'],
    'Verkäufe': [75, 200]
}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Vertikale Verkettung (Hinzufügen von Zeilen)
combined = pd.concat([df1, df2], ignore_index=True)
print(combined)

Am Ende erhalten wir einen kombinierten DataFrame mit allen Zeilen aus beiden Quellen. Achtet auf den Parameter ignore_index=True, der die Indizes im Ergebnis-DataFrame zurücksetzt.

Datenzusammenführung mit der Methode merge

Wenn ihr Daten habt, die auf Basis gemeinsamer Spalten (z. B. id oder Produkt) zusammengeführt werden müssen, dann hilft die Methode merge. Es ist wie ein Date für eure Daten – sie müssen etwas gemeinsam haben, um zusammengeführt zu werden.

Python

# Beispiel-Daten erstellen
sales_data = {
    'Produkt': ['Äpfel', 'Bananen', 'Kirschen'],
    'Verkäufe': [100, 150, 75]
}

price_data = {
    'Produkt': ['Äpfel', 'Bananen', 'Datteln'],
    'Preis': [1.2, 0.8, 3.0]
}

sales_df = pd.DataFrame(sales_data)
price_df = pd.DataFrame(price_data)

# Zusammenführung der DataFrames über die 'Produkt'-Spalte
merged_df = pd.merge(sales_df, price_df, on='Produkt', how='inner')
print(merged_df)

Obwohl wir Informationen zu jedem Produkt haben, gibt merge nur die Zeilen zurück, bei denen es eine Übereinstimmung in der Schlüsselspalte Produkt gibt.

Lasst uns die Arten der Zusammenführung durchgehen:

  • inner (Standard): gibt nur die Zeilen aus beiden DataFrame zurück, die übereinstimmen.
  • outer: gibt alle Zeilen zurück und füllt fehlende Werte mit NaN.
  • left: gibt alle Zeilen aus dem linken DataFrame und die entsprechenden Zeilen aus dem rechten zurück.
  • right: gibt alle Zeilen aus dem rechten DataFrame und die entsprechenden Zeilen aus dem linken zurück.

Zusammenführen von Daten aus mehreren Blättern

Jetzt, wo wir eine Auffrischung darüber hatten, wie das Zusammenführen in pandas funktioniert, lasst uns dieses Wissen in der Praxis anwenden und Daten aus mehreren Blättern einer Excel-Datei zusammenführen.

Python

# Excel-Datei mit mehreren Blättern lesen
excel_file = pd.ExcelFile('sales_data.xlsx')

# Liste aller Blattnamen
sheet_names = excel_file.sheet_names

# Lesen der Daten aus jedem Blatt in einen separaten DataFrame und Hinzufügen zu einer Liste
dataframes = [pd.read_excel(excel_file, sheet_name=sheet_name) for sheet_name in sheet_names]

# Vertikale Verkettung aller DataFrames
all_sales_data = pd.concat(dataframes, ignore_index=True)

print(all_sales_data)

Hier lesen wir alle Blätter aus der Excel-Datei in separate DataFrames und führen sie dann zu einem zusammen. Stark, oder?

Zusammenführen von Daten aus mehreren Dateien

In der Praxis könntet ihr auf eine Situation stoßen, in der Daten auf mehrere Dateien verteilt sind. Lasst uns sehen, wie man den Prozess ihrer Zusammenführung automatisieren kann.

Python

import glob

# Pfad zu den Dateien
file_path = r'data/sales_*.xlsx'

# Liste aller Dateien, die dem Muster entsprechen
files = glob.glob(file_path)

# Lesen der Daten aus jeder Datei in einen separaten DataFrame und Hinzufügen zu einer Liste
dataframes = [pd.read_excel(file) for file in files]

# Vertikale Verkettung aller DataFrames
all_files_data = pd.concat(dataframes, ignore_index=True)

print(all_files_data)

Wir verwenden die Bibliothek glob, um eine Liste von Dateien zu erhalten, die dem angegebenen Muster entsprechen, und dann führen wir die Daten aus jeder Datei in einem einzigen DataFrame zusammen.

3. Reale Anwendungsbeispiele

Datenzusammenführung für Geschäftsanalyse

Angenommen, ihr seid Analyst und arbeitet mit Verkaufsdaten, die für jeden Monat in einer separaten Datei vorliegen. Mit den oben genannten Techniken könnt ihr die Daten mühelos zusammenführen, um jährliche Trends zu analysieren und relevante Erkenntnisse zu gewinnen.

Automatisierung von Berichten

Dank der Automatisierung der Datenzusammenführung könnt ihr ein Skript einrichten, das Informationen aus verschiedenen Quellen sammelt und tägliche, wöchentliche oder monatliche Berichte automatisch erstellt.

Datenverarbeitung aus verschiedenen Quellen

Eure Daten könnten aus verschiedenen Systemen stammen, wobei jede Quelle nur einen Teil der Informationen liefert. Mit pandas könnt ihr diese zusammenführen, um ein vollständiges Bild zu erhalten, z. B. Kundendaten und deren Käufe zu kombinieren.

4. Typische Fehler und deren Behebung

Ein häufiger Fehler ist das Nichtübereinstimmen von Spaltennamen in den zusammenzuführenden DataFrames. Stellt sicher, dass die Spalten, nach denen ihr die Daten zusammenführt, tatsächlich gleich sind, und verwendet bei Bedarf die Parameter left_on und right_on in der Methode merge.

Manchmal können die Daten nach der Zusammenführung fehlende Werte enthalten. Verwendet Methoden wie fillna zum Auffüllen fehlender Werte oder dropna zum Entfernen solcher Daten, um das Problem zu beheben.

Wenn eure Daten Duplikate enthalten, könnte die Methode concat dazu führen, dass euer DataFrame länger ist als erwartet. In diesem Fall verwendet die Methode drop_duplicates, um die Daten zu bereinigen.

Jetzt, da wir die Methoden und Techniken zur Datenzusammenführung in pandas behandelt haben, habt ihr die Werkzeuge, um reale Aufgaben der Automatisierung und Datenanalyse zu bewältigen. Nutzt dieses Wissen weise!

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION