Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku utworzysz pracę analityka usługi Power BI, który jest przechowywany jako modele semantyczne (zestawy danych usługi Power BI). Korzystając z biblioteki SemPy (wersja zapoznawcza) w środowisku nauki o danych usługi Synapse w usłudze Microsoft Fabric, 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 biblioteki 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 notesu przy użyciu potrzebnych modułów i danych.
Użyj
%pippolecenia , aby zainstalować oprogramowanie SemPy z poziomu interfejsu 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
FabricDataFramefabric.read_tabledane usługi Power BI do obiektu przy użyciu funkcji .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 ramka danych pandas, ten kod inicjuje strukturę danych o nazwie ,
FabricDataFramektóra dodaje operacje na wierzchu biblioteki pandas.Sprawdź typ danych .
customertype(customer)Dane wyjściowe pokazują, że
customertosempy.fabric._dataframe._fabric_dataframe.FabricDataFrame.Sprzężenia obiektów
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ę SemPy
find_dependenciesna scalonejDataFrame, 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. Funkcja SemPy umożliwiaplot_dependency_violationswizualizowanie 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 po
Postal Codelewej stronie i wartości dlaCitywartości po 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 ma 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)