Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm bauen Sie auf der Arbeit eines Power BI-Analysten auf, der als semantische Modelle (Power BI-Datasets) gespeichert ist. Mithilfe von SemPy (Vorschau) in der Synapse Data Science-Erfahrung in Microsoft Fabric analysieren Sie funktionale Abhängigkeiten in DataFrame-Spalten. Diese Analyse hilft Ihnen, subtile Probleme mit der Datenqualität zu ermitteln, um genauere Erkenntnisse zu erhalten.
In diesem Lernprogramm erfahren Sie, wie Sie:
- Wenden Sie Domänenwissen an, um Hypothesen zu funktionalen Abhängigkeiten in einem semantischen Modell zu formulieren.
- Machen Sie sich mit Komponenten der Python-Bibliothek von Semantic Link (SemPy) vertraut, die in Power BI integriert sind, und helfen Sie bei der Automatisierung der Datenanalyse. Zu diesen Komponenten gehören:
- FabricDataFrame – pandasähnliche Struktur mit zusätzlichen semantischen Informationen verbessert
- Funktionen, die semantische Modelle aus einem Fabric-Arbeitsbereich in Ihr Notizbuch ziehen
- Funktionen, die funktionsbezogene Abhängigkeitshypothesen auswerten und Beziehungsverstöße in Ihren semantischen Modellen identifizieren
Voraussetzungen
Erhalten Sie ein Microsoft Fabric-Abonnement. Oder registrieren Sie sich für eine kostenlose Microsoft Fabric-Testversion.
Melden Sie sich bei Microsoft Fabrican.
Wechseln Sie zu Fabric, indem Sie den Benutzeroberflächenschalter auf der unteren linken Seite Ihrer Startseite verwenden.
Wählen Sie im Navigationsbereich Arbeitsbereiche aus, um Ihren Arbeitsbereich zu suchen und auszuwählen. Dieser Arbeitsbereich wird zu Ihrem aktuellen Arbeitsbereich.
Laden Sie die Datei "Customer Profitability Sample.pbix " aus dem GitHub-Repository der Fabric-Beispiele herunter.
Wählen Sie in Ihrem Arbeitsbereich Importieren>Bericht oder Paginierter Bericht>Von diesem Computer aus, um die Datei Customer Profitability Sample.pbix in Ihren Arbeitsbereich hochzuladen.
Notebook für das Tutorial
Das Notebook powerbi_dependencies_tutorial.ipynb wird in diesem Tutorial verwendet.
Zum Öffnen des zugehörigen Notizbuchs für dieses Lernprogramm folgen Sie den Anweisungen in Vorbereiten Ihres Systems für Data Science-Lernprogramme, um das Notizbuch in Ihren Arbeitsbereich zu importieren.
Wenn Sie den Code lieber von dieser Seite kopieren und einfügen möchten, können Sie ein neues Notizbucherstellen.
Fügen Sie unbedingt ein Lakehouse an das Notebook an, bevor Sie mit der Ausführung von Code beginnen.
Einrichten des Notizbuchs
Richten Sie eine Notizbuchumgebung mit den benötigten Modulen und Daten ein.
Wird verwendet
%pip, um SemPy aus PyPI im Notizbuch zu installieren.%pip install semantic-linkImportieren Sie die benötigten Module.
import sempy.fabric as fabric from sempy.dependencies import plot_dependency_metadata
Laden und Vorverarbeitung der Daten
In diesem Tutorial wird ein standardmäßiges Beispielsemantikmodell Customer Profitability Sample.pbix verwendet. Eine Beschreibung des semantischen Modells finden Sie unter Beispiel für die Kundenrentabilität für Power BI.
Laden Sie Power BI-Daten mithilfe der
FabricDataFrameFunktion in einefabric.read_table.dataset = "Customer Profitability Sample" customer = fabric.read_table(dataset, "Customer") customer.head()Laden Sie die
StateTabelle in eineFabricDataFrame.state = fabric.read_table(dataset, "State") state.head()Obwohl die Ausgabe wie ein Pandas DataFrame aussieht, initialisiert dieser Code eine Datenstruktur, die so genannte
FabricDataFrameVorgänge über Pandas hinzufügt.Überprüfen Sie den Datentyp von
customer.type(customer)Die Ausgabe zeigt, dass
customerdies istsempy.fabric._dataframe._fabric_dataframe.FabricDataFrame.Verbinden sie die Objekte und
customerstatedieDataFrameObjekte.customer_state_df = customer.merge(state, left_on="State", right_on="StateCode", how='left') customer_state_df.head()
Identifizieren funktionaler Abhängigkeiten
Eine funktionale Abhängigkeit ist eine 1:n-Beziehung zwischen Werten in zwei oder mehr Spalten in einem DataFrame. Verwenden Sie diese Beziehungen, um Probleme mit der Datenqualität automatisch zu erkennen.
Führen Sie die Funktion SemPy für
find_dependenciesdie zusammengeführteDataFrameFunktion aus, um funktionale Abhängigkeiten zwischen Spaltenwerten zu identifizieren.dependencies = customer_state_df.find_dependencies() dependenciesVisualisieren Sie die Abhängigkeiten mithilfe der SemPy-Funktion
plot_dependency_metadata.plot_dependency_metadata(dependencies)Das Diagramm mit funktionalen Abhängigkeiten zeigt, dass die
CustomerSpalte Spalten wieCity,Postal CodeundName.Das Diagramm zeigt keine funktionale Abhängigkeit zwischen
CityundPostal Code, wahrscheinlich, weil es viele Verstöße in der Beziehung zwischen den Spalten gibt. Verwenden Sie die Funktion semPy,plot_dependency_violationsum Abhängigkeitsverstöße zwischen bestimmten Spalten zu visualisieren.
Untersuchen Sie die Daten auf Qualitätsprobleme
Zeichnen Sie ein Diagramm mit der
plot_dependency_violationsVisualisierungsfunktion von SemPy.customer_state_df.plot_dependency_violations('Postal Code', 'City')
Die Darstellung von Abhängigkeitsverstößen zeigt Werte für
Postal Codedie linke Seite und Werte fürCitydie rechte Seite an. Ein Rand verbindet einePostal Codeauf der linken Seite mit einemCityauf der rechten Seite, wenn eine Zeile mit diesen beiden Werten vorhanden ist. Die Linien enthalten einen Kommentar mit der Anzahl der entsprechenden Zeilen. Beispielsweise gibt es zwei Zeilen mit Postleitzahl 20004, eine mit der Stadt "North Tower" und die andere mit der Stadt "Washington".Die Zeichnung zeigt auch einige Verletzungen und viele leere Werte.
Bestätigen Sie die Anzahl leerer Werte für
Postal Code:customer_state_df['Postal Code'].isna().sum()50 Zeilen haben NV für
Postal Code.Zeilen mit leeren Werten ablegen. Suchen Sie dann Abhängigkeiten mithilfe der
find_dependencies-Funktion. Beachten Sie den zusätzlichen Parameterverbose=1, der einen Einblick in die internen Arbeiten von SemPy bietet:customer_state_df2=customer_state_df.dropna() customer_state_df2.find_dependencies(verbose=1)Die bedingte Entropie für
Postal CodeundCitybeträgt 0,049. Dieser Wert gibt an, dass funktionsbezogene Abhängigkeitsverletzungen vorliegen. Bevor Sie die Verletzungen beheben, erhöhen Sie den Schwellenwert für die bedingte Entropie vom Standardwert0.01auf0.05, um nur die Abhängigkeiten anzuzeigen. Niedrigere Schwellenwerte führen zu weniger Abhängigkeiten (oder höherer Selektivität).Erhöhen Sie den Schwellenwert für die bedingte Entropie vom Standardwert
0.01auf0.05:plot_dependency_metadata(customer_state_df2.find_dependencies(threshold=0.05))Wenn Sie Domänenwissen darüber anwenden, welche Entität die Werte anderer Entitäten bestimmt, scheint dieses Abhängigkeitsdiagramm genau zu sein.
Erkunden Sie weitere Probleme mit der Datenqualität, die erkannt wurden. Beispielsweise verbindet ein gestrichelter Pfeil
CityundRegion, was darauf hinweist, dass die Abhängigkeit nur ungefähr ist. Diese ungefähre Beziehung könnte bedeuten, dass es eine teilweise funktionale Abhängigkeit gibt.customer_state_df.list_dependency_violations('City', 'Region')Werfen Sie einen genaueren Blick auf die einzelnen Fälle, in denen ein nicht leerer
RegionWert eine Verletzung verursacht.customer_state_df[customer_state_df.City=='Downers Grove']Das Ergebnis zeigt die Stadt Downers Grove in Illinois und Nebraska. Downers Grove ist jedoch eine Stadt in Illinois, nicht Nebraska.
Sehen Sie sich die Stadt Fremontan:
customer_state_df[customer_state_df.City=='Fremont']Es gibt eine Stadt namens Fremont in Kalifornien. Für Texas gibt die Suchmaschine jedoch Premontzurück, nicht Fremont.
Es ist auch auffällig, dass Verstöße gegen die Abhängigkeit zwischen
NameundCountry/Regionfestzustellen sind, wie durch die gepunktete Linie im ursprünglichen Diagramm der Abhängigkeitsverletzungen (vor dem Entfernen der Zeilen mit leeren Werten) dargestellt.customer_state_df.list_dependency_violations('Name', 'Country/Region')Ein Kunde, SDI Design, erscheint in zwei Regionen – USA und Kanada. In diesem Fall kann es sich nicht um eine semantische Verletzung handeln, nur ungewöhnlich. Dennoch lohnt es sich, einen genauen Blick zu werfen:
Werfen Sie einen genaueren Blick auf den Kunden SDI Design:
customer_state_df[customer_state_df.Name=='SDI Design']Weitere Inspektionen zeigen zwei unterschiedliche Kunden aus verschiedenen Branchen mit demselben Namen.
Explorative Datenanalyse und Datenreinigung sind iterativ. Was Sie finden, hängt von Ihren Fragen und Ihrer Perspektive ab. Der semantische Link bietet Ihnen neue Tools, um mehr von Ihren Daten zu erhalten.
Verwandte Inhalte
Sehen Sie sich weitere Lernprogramme für semantischen Link und SemPy an:
- Lernprogramm: Bereinigen von Daten mit funktionalen Abhängigkeiten
- Lernprogramm: Extrahieren und Berechnen von Power BI-Measures aus einem Jupyter-Notizbuch
- Lernprogramm: Entdecken von Beziehungen in einem Semantikmodell mithilfe von semantischen Verknüpfungen
- Lernprogramm: Ermitteln von Beziehungen im Synthea-Dataset mit semantischer Verknüpfung
- Lernprogramm: Überprüfen von Daten mithilfe von SemPy and Great Expectations (GX)