Verbinde sie miteinander!
In der letzten Lektion hast du den größten Teil der Arbeit an der Verknüpfung von restaurants
und restaurants_new
abgeschlossen. Du hast die verschiedenen Paare von potenziell übereinstimmenden Zeilen erstellt, nach exakten Übereinstimmungen zwischen den Spalten cuisine_type
und city
gesucht, aber nach ähnlichen Zeichenketten in der Spalte rest_name
verglichen. Du hast den DataFrame mit den Werten in potential_matches
gespeichert.
Jetzt ist es endlich an der Zeit, die beiden DataFrames zu verknüpfen. Dazu extrahierst du zunächst alle Zeilenindizes von restaurants_new
, die mit den oben genannten Spalten übereinstimmen, aus potential_matches
. Dann machst du eine Teilmenge von „ restaurants_new
“ anhand dieser Indizes und hängst schließlich die nicht doppelten Werte mit „ restaurants
“ aneinander. Alle DataFrames befinden sich in deiner Umgebung, neben pandas
, das als pd
importiert wurde.
Diese Übung ist Teil des Kurses
Datenbereinigung in Python
Anleitung zur Übung
- Isoliere Instanzen von
potential_matches
, bei denen die Zeilensumme größer oder gleich 3 ist, indem du die Methode.sum()
verwendest. - Extrahiere den zweiten Spaltenindex aus
matches
, der die Zeilenindizes des übereinstimmenden Datensatzes ausrestaurants_new
darstellt, indem du die Methode.get_level_values()
verwendest. - Erstelle eine Teilmenge von
restaurants_new
für Zeilen, die nicht inmatching_indices
sind. - Verknüpfe
restaurants
undnon_dup
.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Isolate potential matches with row sum >=3
matches = ____[____.___(____) >= ____]
# Get values of second column index of matches
matching_indices = matches.____.____(____)
# Subset restaurants_new based on non-duplicate values
non_dup = ____[~restaurants_new.index.____(____)]
# Concatenate restaurants and non_dup
full_restaurants = pd.____([____, ____])
print(full_restaurants)