Freigeben über


Lesen und Schreiben von Daten mit Pandas in Microsoft Fabric

Microsoft Fabric-Notebooks unterstützen die nahtlose Interaktion mit Lakehouse-Daten mithilfe von Pandas, der beliebtesten Python-Bibliothek für die Datenuntersuchung und -verarbeitung. Innerhalb eines Notizbuchs können Sie Daten schnell aus Ihren Lakehouse-Ressourcen in verschiedenen Dateiformaten lesen und zurückschreiben. Dieser Leitfaden enthält Codebeispiele, die Ihnen den Einstieg mit Ihrem eigenen Notebook erleichtern.

Voraussetzungen

  • Führen Sie die Schritte in "Vorbereiten Ihres Systems für Data Science-Lernprogramme " aus, um ein neues Notizbuch zu erstellen und ihr ein Lakehouse anzufügen. Führen Sie für diesen Artikel die Schritte zum Erstellen eines neuen Notizbuchs aus, anstatt ein vorhandenes Notizbuch zu importieren.

Laden von Lakehouse-Daten in ein Notebook

Hinweis

Sie benötigen einige Daten in Ihrem Lakehouse, um die Schritte in diesem Abschnitt auszuführen. Wenn Sie keine Daten haben, führen Sie die Schritte im Download-Dataset aus, und laden Sie es in Lakehouse hoch, um die churn.csv Datei zu Ihrem Lakehouse hinzuzufügen.

Sobald Sie ein Lakehouse an Ihr Microsoft Fabric-Notizbuch anfügen, können Sie gespeicherte Daten erkunden, ohne die Seite zu verlassen und mit nur wenigen Schritten in Ihr Notizbuch zu lesen. Wenn Sie eine Lakehouse-Datei auswählen, werden Optionen zum Laden von Daten in einen Spark- oder Pandas DataFrame angezeigt. Sie können alternativ auch den vollständigen ABFS-Pfad der Datei oder einen benutzerfreundlichen relativen Pfad kopieren.

Screenshot: Position der Optionen zum Laden von Daten in einen Pandas-Dataframe.

Wenn Sie eine der Eingabeaufforderungen "Daten laden" auswählen, wird eine Codezelle generiert, die die Datei in einen DataFrame in Ihrem Notizbuch lädt.

Screenshot: Anzeige einer dem Notebook hinzugefügte Codezelle.

Konvertieren eines Spark-Dataframes in einen Pandas-Dataframe

Dieser Befehl zeigt als Orientierung, wie Sie einen Spark-Dataframe in einen Pandas-DataFrame konvertieren:

# Replace "spark_df" with the name of your own Spark DataFrame
pandas_df = spark_df.toPandas() 

Lesen und Schreiben verschiedener Dateiformate

Hinweis

Das Ändern der Version eines bestimmten Pakets könnte möglicherweise dazu führen, dass andere Pakete nicht mehr funktionieren, die davon abhängig sind. Beispielsweise kann das Herabstufen von azure-storage-blob Probleme mit Pandas und verschiedenen anderen Bibliotheken verursachen, die auf Pandas basieren, einschließlich mssparkutils, fsspec_wrapper und notebookutils. Sie können die Liste der vorinstallierten Pakete und deren Versionen für jede Laufzeit hier anzeigen.

Diese Codebeispiele veranschaulichen Pandas-Vorgänge zum Lesen und Schreiben verschiedener Dateiformate. Diese Beispiele sollen nicht sequenziell wie in einem Lernprogramm ausgeführt werden, sondern nach Bedarf in Ihr eigenes Notizbuch kopiert und eingefügt werden.

Hinweis

Sie müssen die Dateipfade in diesen Code-Beispielen ersetzen. Pandas unterstützt wie hier gezeigt sowohl relative Pfade als auch vollständige ABFS-Pfade. Sie können Pfade von beiden Typen mithilfe der vorherigen Schritte von der Schnittstelle abrufen und kopieren.

Lesen von Daten aus einer CSV-Datei

import pandas as pd

# Read a CSV file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_csv("/LAKEHOUSE_PATH/Files/FILENAME.csv")
display(df)

Schreiben von Daten als CSV-Datei

import pandas as pd 

# Write a Pandas DataFrame into a CSV file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_csv("/LAKEHOUSE_PATH/Files/FILENAME.csv") 

Lesen von Daten aus einer Parquet-Datei

import pandas as pd 
 
# Read a Parquet file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_parquet("/LAKEHOUSE_PATH/Files/FILENAME.parquet") 
display(df)

Schreiben von Daten als Parquet-Datei

import pandas as pd 
 
# Write a Pandas DataFrame into a Parquet file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_parquet("/LAKEHOUSE_PATH/Files/FILENAME.parquet") 

Lesen von Daten aus einer Excel-Datei

import pandas as pd 
 
# Read an Excel file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
# If the file is in a subfolder, add the correct file path after Files/
# For the default lakehouse attached to the notebook, use: df = pd.read_excel("/lakehouse/default/Files/FILENAME.xlsx") 
df = pd.read_excel("/LAKEHOUSE_PATH/Files/FILENAME.xlsx") 
display(df) 

Schreiben von Daten als Excel-Datei

import pandas as pd 

# Write a Pandas DataFrame into an Excel file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_excel("/LAKEHOUSE_PATH/Files/FILENAME.xlsx") 

Lesen von Daten aus einer JSON-Datei

import pandas as pd 
 
# Read a JSON file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_json("/LAKEHOUSE_PATH/Files/FILENAME.json") 
display(df) 

Schreiben von Daten als JSON-Datei

import pandas as pd 
 
# Write a Pandas DataFrame into a JSON file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_json("/LAKEHOUSE_PATH/Files/FILENAME.json") 

Arbeiten mit Delta-Tabellen

Delta-Tabellen sind das Standardtabellenformat in Microsoft Fabric und werden im Tabellenabschnitt Ihres Lakehouse gespeichert. Im Gegensatz zu Dateien benötigen Delta-Tabellen einen zweistufigen Prozess zum Arbeiten mit Pandas: Lesen Sie zuerst die Tabelle in einen Spark DataFrame, und konvertieren Sie sie dann in einen Pandas DataFrame.

Erstellen einer Delta-Testtabelle

Um die Schritte in diesem Abschnitt auszuführen, benötigen Sie eine Delta-Tabelle in Ihrem Lakehouse. Führen Sie die Schritte im Download-Dataset aus, und laden Sie sie in Lakehouse hoch, um die churn.csv Datei zu Ihrem Lakehouse hinzuzufügen, und erstellen Sie dann eine Testtabelle aus der churn.csv Datei, indem Sie diesen Code in Ihrem Notizbuch ausführen:

import pandas as pd
# Create a test Delta table from the churn.csv file

df = pd.read_csv("/lakehouse/default/Files/churn/raw/churn.csv")
spark_df = spark.createDataFrame(df)
spark_df.write.format("delta").mode("overwrite").saveAsTable("churn_table")

Dadurch wird eine Delta-Tabelle mit dem Namen churn_table erstellt, die Sie zum Testen der folgenden Beispiele verwenden können.

Lesen von Daten aus einer Delta-Tabelle

# Read a Delta table from your Lakehouse into a pandas DataFrame
# This example uses the churn_table created above
spark_df = spark.read.format("delta").load("Tables/churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)

Sie können Delta-Tabellen auch mithilfe der Spark SQL-Syntax lesen:

# Alternative method using Spark SQL
spark_df = spark.sql("SELECT * FROM churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)

Schreiben von Pandas DataFrame in eine Delta-Tabelle

# Convert pandas DataFrame to Spark DataFrame, then save as Delta table
# Replace TABLE_NAME with your desired table name
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.format("delta").mode("overwrite").saveAsTable("TABLE_NAME")

Sie können auch in einem bestimmten Pfad im Abschnitt "Tabellen" speichern:

# Save to a specific path in the Tables section
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.format("delta").mode("overwrite").save("Tables/TABLE_NAME")

Schreibmodi für Delta-Tabellen

Beim Schreiben in Delta-Tabellen können Sie verschiedene Modi angeben:

# Overwrite the entire table
spark_df.write.format("delta").mode("overwrite").saveAsTable("TABLE_NAME")

# Append new data to existing table
spark_df.write.format("delta").mode("append").saveAsTable("TABLE_NAME")

Hinweis

Delta-Tabellen, die im Abschnitt "Tabellen " Ihres Lakehouse erstellt wurden, können ohne zusätzliche Registrierungs- oder Konfigurationsschritte ermittelt werden und mithilfe von Spark SQL abgefragt werden. Sie werden auch in der Lakehouse-Explorer-Schnittstelle angezeigt (Möglicherweise müssen Sie den Lakehouse-Explorer aktualisieren, um aktuelle Änderungen zu sehen).