merge exercise data day3
This commit is contained in:
parent
5a2823872f
commit
8563ee867e
@ -13,6 +13,12 @@ kunden2 = pd.DataFrame({
|
|||||||
'stadt': ['Hamburg', 'Köln']
|
'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({
|
bestellungen = pd.DataFrame({
|
||||||
'bestell_id': [101, 102, 103, 104],
|
'bestell_id': [101, 102, 103, 104],
|
||||||
@ -20,3 +26,35 @@ bestellungen = pd.DataFrame({
|
|||||||
'produkt': ['Laptop', 'Maus', 'Tastatur', 'Monitor'],
|
'produkt': ['Laptop', 'Maus', 'Tastatur', 'Monitor'],
|
||||||
'preis': [800, 25, 50, 300]
|
'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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
48
src/T18_MergingEx.py
Normal file
48
src/T18_MergingEx.py
Normal file
@ -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()]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user