Łączymy wszystko w całość!
W ostatniej lekcji wykonałeś większość pracy związanej z łączeniem zbiorów restaurants i restaurants_new. Wygenerowałeś różne pary potencjalnie pasujących wierszy, wyszukałeś dokładne dopasowania w kolumnach cuisine_type i city, a dla kolumny rest_name porównałeś podobieństwo ciągów tekstowych. Wyniki zostały zapisane w ramce danych potential_matches.
Nadszedł czas, żeby połączyć obie ramki danych. Zacznij od wyodrębnienia indeksów wierszy ze zbioru restaurants_new, które są zgodne z dopasowaniami w potential_matches. Następnie przefiltruj restaurants_new według tych indeksów i połącz zduplikowane wartości z ramką restaurants. Wszystkie ramki danych są dostępne w środowisku, a biblioteka pandas jest zaimportowana jako pd.
To ćwiczenie jest częścią kursu
Czyszczenie danych w Pythonie
Instrukcje do ćwiczenia
- Wyfiltruj wiersze
potential_matches, w których suma wartości w wierszu jest większa lub równa 3 – użyj metody.sum(). - Wyodrębnij drugi indeks kolumny z
matches, który reprezentuje indeksy pasujących wierszy zrestaurants_new, korzystając z metody.get_level_values(). - Przefiltruj
restaurants_newtak, żeby zachować tylko wiersze, które nie znajdują się wmatching_indices. - Połącz
restaurantsinon_dupza pomocąpd.concat().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)