Drei Schreibweisen für eine Stadt
Ein Lieferdienst möchte wissen, wie viele Lieferungen nach Hamburg gingen.
Ihre Zählung zeigt „Hamburg“ 120-mal, „hamburg “ 14-mal und „ HAMBURG“ 6-mal. Bei zwölf Zeilen fehlt die Stadt ganz.
Der Bericht ist falsch, bevor Sie anfangen. Echte Daten sind so. Sie zu bereinigen, ist ein großer Teil der Arbeit in der Datenanalyse.
Am Ende dieser Lektion
Notiz
Ich kann fehlende und falsche Werte in einer Tabelle finden und beheben.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Fehlender Wert | ein Wert, der nie erfasst wurde | None |
| Falscher Wert | ein Wert, der nicht stimmen kann | -8 Minuten |
| Uneinheitlich | dieselbe Sache, verschieden geschrieben | |
| Bereinigen | schlechte Werte finden und beheben | |
| Regel | ein Test, den jeder gute Wert besteht | minuten >= 0 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Regeln finden die schlechten Werte
Was Sie nicht gefunden haben, können Sie nicht beheben. Schreiben Sie darum zuerst Regeln.
Eine Stadt darf nicht leer sein und keine Leerzeichen am Rand haben. Eine Lieferzeit muss da sein. Sie liegt zwischen null und 300 Minuten.
Eine Schleife prüft jede Zeile gegen jede Regel. Jeder Verstoß wird mit der Zeilennummer gemeldet, damit Sie ihn ansehen können.
Schlechte Zeilen melden
lieferungen = [
{"nr": 1, "stadt": "Hamburg", "minuten": 42},
{"nr": 2, "stadt": "hamburg ", "minuten": 35},
{"nr": 3, "stadt": "", "minuten": 51},
{"nr": 4, "stadt": "Leipzig", "minuten": None},
{"nr": 5, "stadt": "Leipzig", "minuten": -8},
{"nr": 6, "stadt": "Leipzig", "minuten": 380},
]
# Prüfen Sie jede Zeile gegen die Regeln und melden Sie, was nicht stimmt.
for zeile in lieferungen:
if zeile["stadt"] == "":
print("Zeile", zeile["nr"], "hat keine Stadt")
elif zeile["stadt"] != zeile["stadt"].strip():
print("Zeile", zeile["nr"], "hat Leerzeichen am Rand")
if zeile["minuten"] is None:
print("Zeile", zeile["nr"], "hat keine Zeit")
elif zeile["minuten"] < 0:
print("Zeile", zeile["nr"], "hat eine Zeit unter null")
elif zeile["minuten"] > 300:
print("Zeile", zeile["nr"], "hat eine Zeit über 300 Minuten")
# Fügen Sie oben eine Zeile 7 mit der Stadt "Bonn" und 500 Minuten hinzu. Drücken Sie Run.
Was die Prüfung gefunden hat
| Zeile | Problem | Art |
|---|---|---|
| 2 | Stadt ist „hamburg “ mit Leerzeichen | uneinheitlich |
| 3 | Stadt ist leer | fehlend |
| 4 | minuten ist None | fehlend |
| 5 | minuten ist -8 | falsch |
| 6 | minuten ist 380, über der Obergrenze | falsch |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Jedes Problem hat seine eigene Lösung
Einen uneinheitlichen Wert bringen Sie in eine feste Form. strip() entfernt Leerzeichen am Rand, title() setzt die Großbuchstaben.
Bei einem fehlenden oder falschen Wert ist es schwerer. Vielleicht steht der richtige Wert in einem anderen System. Wenn nicht, lassen Sie die Zeile in dieser Rechnung weg und schreiben das in den Bericht.
Jede Stadt in eine Form bringen
staedte = ["Hamburg", "hamburg ", " HAMBURG", "Leipzig", "leipzig"]
# strip() entfernt Leerzeichen an beiden Enden.
# title() macht aus "hamburg" das Wort "Hamburg".
sauber = []
for stadt in staedte:
sauber.append(stadt.strip().title())
print("Vorher:", staedte)
print("Nachher:", sauber)
# Hängen Sie " bonn" an die Liste staedte an und drücken Sie erneut Run.
Ein häufiger Fehler
Warnung
Viele denken, ein fehlender Wert sei gleich null. Das stimmt nicht: Eine leere Lieferzeit ist unbekannt, nicht sofort. Wenn Sie Lücken mit 0 füllen, sinkt der Durchschnitt, und der Bericht sieht besser aus als die Wahrheit.