Alles aan elkaar koppelen!
In de vorige les heb je het grootste deel van het werk voltooid om restaurants en restaurants_new te koppelen. Je hebt verschillende paren met mogelijk overeenkomende rijen gegenereerd, exact gezocht naar overeenkomsten in de kolommen cuisine_type en city, en vergelijkbare strings vergeleken in de kolom rest_name. De DataFrame met de scores heb je opgeslagen in potential_matches.
Nu is het eindelijk tijd om beide DataFrames te koppelen. Dat doe je door eerst alle rij-indexen van restaurants_new te extraheren die overeenkomen op de bovenstaande kolommen uit potential_matches. Vervolgens subset je restaurants_new op deze indexen en voeg je tot slot de niet-duplicaatwaarden samen met restaurants. Alle DataFrames staan in je omgeving, en pandas is geïmporteerd als pd.
Deze oefening maakt deel uit van de cursus
Data opschonen in Python
Oefeninstructies
- Isoleer rijen in
potential_matcheswaarvoor de rijsom groter dan of gelijk aan 3 is met de methode.sum(). - Extraheer de tweede kolomindex uit
matches, die de rij-indexen van overeenkomende records uitrestaurants_newvoorstelt, met de methode.get_level_values(). - Subselecteer
restaurants_newvoor rijen die niet inmatching_indicesstaan. - Concateneer
restaurantsennon_dup.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)