Slik leser og skriver du data med Pandas i Microsoft Fabric

Microsoft Fabric-notatblokker støtter sømløs interaksjon med Lakehouse-data ved hjelp av Pandas, det mest populære Python-biblioteket for datautforskning og -behandling. I en notatblokk kan du raskt lese data fra og skrive data tilbake til Lakehouse-ressursene dine i ulike filformater. Denne veiledningen inneholder kodeeksempler som hjelper deg med å komme i gang i din egen notatblokk.

Forutsetning

  • Få et Microsoft Fabric-abonnement. Eller registrer deg for en gratis prøveversjon av Microsoft Fabric.

  • Logg på Microsoft Fabric.

  • Bytt til Fabric ved å bruke erfaringsbryteren nederst til venstre på hjemmesiden din.

    Skjermbilde som viser valget av Fabric i menyen for opplevelsesbytter.

  • Fullfør trinnene i Klargjøre systemet for datavitenskapsopplæringer for å opprette en ny notatblokk og knytte et Lakehouse til den. I denne artikkelen følger du fremgangsmåten for å opprette en ny notatblokk i stedet for å importere en eksisterende.

Bruk denne arbeidsflyten for å velge riktig mønster:

  • For enkeltfiler i Lakehouse, les eller skriv dem med Pandas ved å bruke en sti under Files.
  • For tabelllignende data i et Lakehouse, bruk Spark- og Delta-tabeller, og konverter deretter til Pandas kun når resultatet passer i notatboken din.
  • Hvis dataene er store, oppbevar dem i Spark for filtrering, aggregering og transformasjon før du konverterer dem til en Pandas DataFrame.

Laste inn Lakehouse-data i en notatblokk

Merk

Du trenger noen data i Lakehouse for å følge trinnene i denne delen. Hvis du ikke har noen data, følger du fremgangsmåten i Last ned datasett og last opp til Lakehouse for å legge til denchurn.csv filen i Lakehouse.

Når du har festet en Lakehouse til Microsoft Fabric-notatboken din, kan du utforske lagrede data uten å forlate siden og kopiere filstien du trenger for notatbokkoden. I Lakehouse-utforskeren kan du enten bruke det genererte notatbokutsnittet til å laste en fil inn i en Spark- eller Pandas DataFrame, eller kopiere hele filens ABFS-sti. For standard Lakehouse knyttet til notatboken ser en typisk Files-sti ut som /lakehouse/default/Files/.... For andre Lakehouses, bruk ABFS-stien fra Lakehouse Explorer.

Skjermbilde som viser alternativene for å laste inn data i en Pandas DataFrame.

Ved å velge en fil i Lakehouse-utforskeren kan du generere kode som laster filen inn i en DataFrame i notatboken din.

Skjermbilde som viser en kodecelle som er lagt til i notatblokken.

Konvertere en Spark DataFrame til en Pandas DataFrame

Important

toPandas() laster hele Spark DataFrame inn i minnet. Bruk det kun til små til mellomstore resultatsett. Hvis datasettet ditt er stort, filtrer, aggreger eller sample det i Spark før du konverterer til Pandas.

For referanse viser denne kommandoen hvordan du konverterer en Spark DataFrame til en Pandas DataFrame:

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

Lese og skrive ulike filformater

Merk

Endring av versjonen av en bestemt pakke kan potensielt bryte andre pakker som avhenger av den. Nedgradering azure-storage-blob kan for eksempel føre til problemer med Pandas og ulike andre biblioteker som er avhengige Pandasav , inkludert mssparkutils, fsspec_wrapperog notebookutils. Du kan vise listen over forhåndsinstallerte pakker og deres versjoner for hver kjøretid her.

Disse kodeeksemplene demonstrerer Pandas-operasjoner for å lese og skrive ulike filformater. Disse eksemplene er ikke ment å kjøres sekvensielt som i en opplæring, men i stedet kopieres og limes inn i din egen notatblokk etter behov.

Merk

Du må erstatte filstiene i disse kodeeksemplene med hele stien for filen i Lakehouse-en din. For standard Lakehouse knyttet til notatboken, bruk en sti som /lakehouse/default/Files/.... For andre Lakehouses, bruk ABFS-stien fra Lakehouse Explorer.

Lese data fra en CSV-fil

import pandas as pd

# Read a CSV file from your Lakehouse into a Pandas DataFrame
# For the default Lakehouse attached to the notebook, use the following path pattern:
df = pd.read_csv("/lakehouse/default/Files/FILENAME.csv")

# Verify that the file loaded successfully before continuing
print(df.head())
print(df.shape)
display(df)

Skrive data som en CSV-fil

import pandas as pd

# Write a Pandas DataFrame into a CSV file in your Lakehouse
# Replace FILENAME with your own value
df.to_csv("/lakehouse/default/Files/FILENAME.csv", index=False)

Lese data fra en parkettfil

import pandas as pd

# Read a Parquet file from your Lakehouse into a Pandas DataFrame
df = pd.read_parquet("/lakehouse/default/Files/FILENAME.parquet")
display(df)

Skrive data som en parquet-fil

import pandas as pd

# Write a Pandas DataFrame into a Parquet file in your Lakehouse
df.to_parquet("/lakehouse/default/Files/FILENAME.parquet")

Lese data fra en Excel-fil

import pandas as pd

# Read an Excel file from your Lakehouse into a Pandas DataFrame
# If the file is in a subfolder, add the appropriate folder after Files/
df = pd.read_excel("/lakehouse/default/Files/FILENAME.xlsx")
display(df)

Skrive data som en Excel-fil

import pandas as pd

# Write a Pandas DataFrame into an Excel file in your Lakehouse
df.to_excel("/lakehouse/default/Files/FILENAME.xlsx", index=False)

Lese data fra en JSON-fil

import pandas as pd

# Read a JSON file from your Lakehouse into a Pandas DataFrame
df = pd.read_json("/lakehouse/default/Files/FILENAME.json")
display(df)

Skrive data som en JSON-fil

import pandas as pd

# Write a Pandas DataFrame into a JSON file in your Lakehouse
df.to_json("/lakehouse/default/Files/FILENAME.json")

Arbeide med Delta-tabeller

Deltatabeller er standard tabellformat i Microsoft Fabric og lagres i Tabeller-delen av Lakehouse. Filer og tabeller er forskjellige lagringssteder i Fabric, og de bruker forskjellige tilgangsmønstre. For å jobbe med Delta-tabeller i Pandas, les først tabellen inn i en Spark DataFrame, og konverter deretter det filtrerte resultatet til en pandas DataFrame kun når det får plass i driverminnet.

Opprette en Delta-testtabell

Hvis du vil følge fremgangsmåten i denne delen, trenger du en Delta-tabell i Lakehouse. Følg fremgangsmåten i Last ned datasett og last opp til lakehouse for å legge til churn.csv filen i Lakehouse, og opprett deretter en testtabell fra churn.csv-filen ved å kjøre denne koden i notatblokken:

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")

Dette steget lager en Delta-tabell kalt churn_table som du kan bruke for å teste følgende eksempler.

Lese data fra en Delta-tabell

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

Du kan også lese Delta-tabeller ved hjelp av Spark SQL-syntaks:

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

Skrive pandas DataFrame til en Delta-tabell

# 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")

Du kan også lagre til en bestemt bane i Tabeller-delen:

# 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")

Skrivemoduser for Delta-tabeller

Når du skriver til Delta-tabeller, kan du angi forskjellige moduser:

# 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")

Merk

Deltatabeller som er opprettet i Tabeller-delen av Lakehouse, kan oppdages uten ytterligere registrerings- eller konfigurasjonstrinn, og kan spørres ved hjelp av Spark SQL. De vises også i Lakehouse-utforskergrensesnittet (du må kanskje oppdatere Lakehouse-utforskeren for å se nylige endringer).