diff --git a/src/T17_merging_of_frames.py b/src/T17_merging_of_frames.py index cd3de4f..e7a5e45 100644 --- a/src/T17_merging_of_frames.py +++ b/src/T17_merging_of_frames.py @@ -13,6 +13,12 @@ kunden2 = pd.DataFrame({ 'stadt': ['Hamburg', 'Köln'] }) +print(kunden1) +print(kunden2) + +# zeilen an ein dataframe anhängen +kunden = pd.concat((kunden1, kunden2)) # axis=0 +print(kunden) bestellungen = pd.DataFrame({ 'bestell_id': [101, 102, 103, 104], @@ -20,3 +26,35 @@ bestellungen = pd.DataFrame({ 'produkt': ['Laptop', 'Maus', 'Tastatur', 'Monitor'], 'preis': [800, 25, 50, 300] }) + +# kunden mit bestellungen die auch registriert sind +kunden_best = pd.merge(kunden, bestellungen, + on="kunden_id", + how="inner") # kuden_id muss in beiden dataframes existieren +print(kunden_best) + +# alle existierenden kunden auf bestellungen mergen will +alle_kunden_best = pd.merge( + kunden, bestellungen, + on="kunden_id", + how="left" +) +print(alle_kunden_best) + +alle_best_kunden = pd.merge( + kunden, bestellungen, + on="kunden_id", + how="right" +) +print(alle_best_kunden) + +# alles mit allem mergen +alles = pd.merge( + kunden, bestellungen, + on="kunden_id", + how="outer" +) +print(alles) + + + diff --git a/src/T18_MergingEx.py b/src/T18_MergingEx.py new file mode 100644 index 0000000..4f728e0 --- /dev/null +++ b/src/T18_MergingEx.py @@ -0,0 +1,48 @@ +import pandas as pd +from datetime import datetime, timedelta + +# Kunden Dataset +kunden = pd.DataFrame({ + 'kunden_id': [1, 2, 3, 4, 5, 6, 7, 8], + 'name': ['Anna Müller', 'Ben Schmidt', 'Clara Weber', 'David Klein', + 'Eva Richter', 'Frank Braun', 'Greta Wolff', 'Hans Bauer'], + 'email': ['anna.mueller@email.com', 'ben.schmidt@email.com', 'clara.weber@email.com', + 'david.klein@email.com', 'eva.richter@email.com', 'frank.braun@email.com', + 'greta.wolff@email.com', 'hans.bauer@email.com'], + 'registriert_am': ['2024-01-15', '2024-01-22', '2024-02-03', '2024-02-10', + '2024-02-28', '2024-03-05', '2024-03-12', '2024-03-20'] +}) + +bestellungen = pd.DataFrame({ + 'bestell_id': [101, 102, 103, 104, 105, 106, 107, 108, 109], + 'kunden_id': [1, 2, 1, 3, 2, 4, 1, 5, 9], # Kunde 9 existiert nicht! + 'bestelldatum': ['2024-01-20', '2024-01-25', '2024-02-01', '2024-02-05', + '2024-02-12', '2024-02-15', '2024-03-01', '2024-03-10', '2024-03-15'], + 'status': ['geliefert', 'geliefert', 'versandt', 'geliefert', 'storniert', + 'geliefert', 'geliefert', 'versandt', 'geliefert'] +}) + +print("\nBestellungen Dataset:") +print(bestellungen) + +positionen = pd.DataFrame({ + 'position_id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + 'bestell_id': [101, 101, 102, 103, 103, 104, 105, 106, 107, 107, 108, 108, 109, 110], + 'produkt': ['Laptop', 'Maus', 'Tastatur', 'Monitor', 'Webcam', 'Headset', + 'Smartphone', 'Ladekabel', 'Tablet', 'Hülle', 'Drucker', 'Papier', + 'Router', 'Kamera'], + 'menge': [1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1], + 'preis': [899.99, 29.99, 79.99, 299.99, 89.99, 149.99, 699.99, 24.99, + 399.99, 19.99, 199.99, 29.99, 129.99, 549.99] +}) + +print("\nBestellpositionen Dataset:") +print(positionen) + + +# Aufgabe 1: Bestellungen mit Kundennamen +# Aufgabe 2: Vollständige Bestellübersicht (jede bestellung mit kunde und mit position mergen) +# Aufgabe 3: Kunden ohne Bestellungen finden [isna()] + + +