Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku bazujesz na pracy analityka usługi Power BI, która jest przechowywana w postaci modeli semantycznych (zestawów danych usługi Power BI). Korzystając z SemPy (podglądu) w obciążeniu Fabric Data Science, analizujesz zależności funkcjonalne w kolumnach DataFrame. Ta analiza pomaga odkryć subtelne problemy z jakością danych, aby uzyskać dokładniejsze szczegółowe informacje.
Z tego samouczka dowiesz się, jak wykonywać następujące działania:
- Zastosuj wiedzę na temat domeny, aby sformułować hipotezy dotyczące zależności funkcjonalnych w modelu semantycznym.
- Zapoznaj się ze składnikami biblioteki języka Python (SemPy) usługi Semantic Link, które integrują się z usługą Power BI i pomagają zautomatyzować analizę jakości danych. Te składniki obejmują:
- FabricDataFrame—struktura podobna do pandas rozszerzona o dodatkowe informacje semantyczne
- Funkcje ściągające modele semantyczne z obszaru roboczego usługi Fabric do notesu
- Funkcje, które oceniają hipotezy zależności funkcjonalnych i identyfikują naruszenia relacji w modelach semantycznych
Warunki wstępne
Pobierz subskrypcję usługi Microsoft Fabric . Możesz też utworzyć bezpłatne konto wersji próbnej usługi Microsoft Fabric.
Zaloguj się do usługi Microsoft Fabric.
Przełącz się na Fabric, używając przełącznika nawigacji w lewej dolnej części strony głównej.
Wybierz pozycję Obszary robocze w okienku nawigacji, aby znaleźć i wybrać obszar roboczy. To środowisko pracy staje się bieżącym środowiskiem pracy.
Pobierz plik Customer Profitability Sample.pbix z repozytorium GitHub fabric-samples.
W obszarze roboczym wybierz pozycję Importuj raport>lub raport podzielony na strony>Z tego komputera, aby przekazać plik Customer Profitability Sample.pbix do obszaru roboczego.
Śledź w zeszycie
Notatnik powerbi_dependencies_tutorial.ipynb towarzyszy temu samouczkowi.
Aby otworzyć dołączony zeszyt do tego samouczka, postępuj zgodnie z instrukcjami w Przygotuj swój system do samouczków z nauki o danych, w celu zaimportowania zeszytu do obszaru roboczego.
Jeśli wolisz skopiować i wkleić kod z tej strony, możesz utworzyć nowy notes.
Przed rozpoczęciem uruchamiania kodu, upewnij się, że dołączysz lakehouse do notesu.
Skonfiguruj notebooka
Skonfiguruj środowisko notatnika z modułami i danymi, których potrzebujesz.
Użyj polecenia
%pip, aby zainstalować SemPy z PyPI w notesie.%pip install semantic-linkZaimportuj potrzebne moduły.
import sempy.fabric as fabric from sempy.dependencies import plot_dependency_metadata
Ładowanie i wstępne przetwarzanie danych
W tym samouczku użyto standardowego przykładowego modelu semantycznego Customer Profitability Sample.pbix. Aby zapoznać się z opisem modelu semantycznego, zobacz Przykład Customer Profitability dla usługi Power BI.
Załaduj dane usługi Power BI do
FabricDataFrame, używając funkcjifabric.read_table.dataset = "Customer Profitability Sample" customer = fabric.read_table(dataset, "Customer") customer.head()Załaduj tabelę
Statedo obiektuFabricDataFrame.state = fabric.read_table(dataset, "State") state.head()Mimo że dane wyjściowe wyglądają jak DataFrame biblioteki pandas, ten kod inicjalizuje strukturę danych o nazwie
FabricDataFrame, która rozszerza bibliotekę pandas o dodatkowe operacje.Sprawdź typ danych
customer.type(customer)Dane wyjściowe wskazują, że
customertosempy.fabric._dataframe._fabric_dataframe.FabricDataFrame.Połącz obiekty
customeristateDataFrame.customer_state_df = customer.merge(state, left_on="State", right_on="StateCode", how='left') customer_state_df.head()
Identyfikowanie zależności funkcjonalnych
Zależność funkcjonalna to relacja jeden do wielu między wartościami w co najmniej dwóch kolumnach w obiekcie DataFrame. Użyj tych relacji, aby automatycznie wykrywać problemy z jakością danych.
Uruchom funkcję
find_dependenciesbiblioteki SemPy na scalonym elemencieDataFrame, aby zidentyfikować zależności funkcjonalne między wartościami kolumn.dependencies = customer_state_df.find_dependencies() dependenciesWizualizuj zależności przy użyciu funkcji SemPy
plot_dependency_metadata.plot_dependency_metadata(dependencies)Wykres zależności funkcjonalnych pokazuje, że kolumna
Customerokreśla kolumny, takie jakCity,Postal CodeiName.Wykres nie pokazuje zależności funkcjonalnej między
CityiPostal Code, prawdopodobnie dlatego, że istnieje wiele naruszeń relacji między kolumnami. Użyj funkcji SemPyplot_dependency_violationsdo wizualizacji naruszeń zależności między określonymi kolumnami.
Eksplorowanie danych pod kątem problemów z jakością
Rysuj graf za pomocą funkcji wizualizacji
plot_dependency_violationsSemPy.customer_state_df.plot_dependency_violations('Postal Code', 'City')
Wykres naruszeń zależności przedstawia wartości dla
Postal Codepo lewej stronie oraz wartości dlaCitypo prawej stronie. Krawędź łączyPostal Codepo lewej stronie zCitypo prawej stronie, jeśli istnieje wiersz zawierający te dwie wartości. Krawędzie są oznaczone adnotacjami z liczbą takich wierszy. Na przykład są dwa wiersze z kodem pocztowym 20004: jeden z miastem "North Tower" i drugi z miastem "Waszyngton".Wykres przedstawia również kilka naruszeń i wiele pustych wartości.
Potwierdź liczbę pustych wartości dla
Postal Code:customer_state_df['Postal Code'].isna().sum()50 wierszy zawiera wartość NA dla
Postal Code.Usuwanie wierszy z pustymi wartościami. Następnie znajdź zależności przy użyciu funkcji
find_dependencies. Zwróć uwagę na dodatkowy parametrverbose=1, który oferuje wgląd w wewnętrzne działania SemPy:customer_state_df2=customer_state_df.dropna() customer_state_df2.find_dependencies(verbose=1)Entropia warunkowa dla
Postal CodeiCitywynosi 0,049. Ta wartość wskazuje, że istnieją naruszenia zależności funkcjonalnych. Przed naprawieniem naruszeń podnieś próg dla entropii warunkowej z wartości domyślnej0.01do0.05, aby zobaczyć zależności. Niższe progi powodują zmniejszenie zależności (lub wyższą selektywność).Podnieś próg entropii warunkowej z wartości domyślnej
0.01do0.05:plot_dependency_metadata(customer_state_df2.find_dependencies(threshold=0.05))Jeśli zastosujesz wiedzę o domenie, która jednostka określa wartości innych jednostek, ten wykres zależności wydaje się dokładny.
Poznaj więcej wykrytych problemów z jakością danych. Na przykład strzałka przerywana łączy
CityiRegion, co wskazuje, że zależność jest jedynie przybliżona. Przybliżona relacja może oznaczać, że istnieje częściowa zależność funkcjonalna.customer_state_df.list_dependency_violations('City', 'Region')Przyjrzyj się bliżej każdemu z przypadków, w których niepusta wartość
Regionpowoduje naruszenie.customer_state_df[customer_state_df.City=='Downers Grove']Wynik pokazuje miasto Downers Grove w Illinois i Nebraska. Jednak Downers Grove jest miastem w Illinois, a nie Nebraska.
Przyjrzyj się miastu Fremont:
customer_state_df[customer_state_df.City=='Fremont']Istnieje miasto o nazwie Fremont w Kalifornii. Jednak w przypadku Teksasu wyszukiwarka zwraca Premont, a nie Fremont.
Podejrzane jest również widzieć naruszenia zależności między
NameiCountry/Region, oznaczone linią przerywaną w oryginalnym wykresie naruszeń zależności (przed usunięciem wierszy z brakującymi wartościami).customer_state_df.list_dependency_violations('Name', 'Country/Region')Jeden klient, SDI Design, pojawia się w dwóch regionach — Stanach Zjednoczonych i Kanadzie. Ten przypadek może nie być naruszeniem semantycznym, po prostu nietypowym. Mimo to warto przyjrzeć się bliżej:
Przyjrzyj się bliżej projektowi SDIklienta:
customer_state_df[customer_state_df.Name=='SDI Design']Dalsza kontrola pokazuje dwóch różnych klientów z różnych branż o tej samej nazwie.
Eksploracyjna analiza danych i czyszczenie danych są iteracyjne. To, co znajdziesz, zależy od pytań i perspektywy. Usługa Semantic Link udostępnia nowe narzędzia do uzyskiwania większej ilości danych.
Powiązana zawartość
Zapoznaj się z innymi samouczkami dotyczącymi linku semantycznego i biblioteki SemPy:
- samouczek : czyszczenie danych z zależnościami funkcjonalnymi
- samouczek : wyodrębnianie i obliczanie miar usługi Power BI z notesu Jupyter
- Samouczek: odnajdywanie relacji w modelu semantycznym przy użyciu linku semantycznego
- Samouczek: odnajdywanie relacji w zestawie danych Synthea przy użyciu linku semantycznego
- Samouczek : Weryfikowanie danych przy użyciu bibliotek SemPy i Great Expectations (GX)