Skip to content

Entrées de données PyGWalker

PyGWalker fonctionne avec des données tabulaires. La plupart des API publiques acceptent les DataFrame pandas, les DataFrame polars, les pyarrow Table, les connecteurs de base de données et les chaînes SQL ou sources de données de style connecteur. Certains adaptateurs acceptent aussi un objet pygwalker.Walker réutilisable.

Matrice des entrées prises en charge

Entrée de donnéesAPI typiquesNotes
DataFrame pandasToutes les principales APIL'entrée locale la plus courante.
DataFrame polarsToutes les principales APIAnalysée par la couche de parser DataFrame.
pyarrow TableToutes les principales APIPrise en charge par les signatures publiques et les tests des parsers.
Connector de base de donnéeswalk, render, table, Streamlit, Gradio, webserver, helpers cloudLes datasets Connector utilisent des requêtes côté kernel.
Chaîne SQL/source de donnéesAPI de haut niveau, notebook, anywidget, marimo, webserver, component, helpers de graphiques HTMLÀ utiliser pour les chemins de style connecteur lorsque l'adaptateur les prend en charge.
pygwalker.Walkerwalk, anywidget, marimo, webserver, Streamlit, to_htmlRéutilise un objet PyGWalker déjà construit.

Pandas

Utilisez pandas lorsque vos données sont déjà en mémoire.

import pandas as pd
import pygwalker as pyg
 
df = pd.read_csv("data.csv")
walker = pyg.walk(df, spec_path="./gw_config.json")

Polars

Les DataFrame polars peuvent être passés directement.

import polars as pl
import pygwalker as pyg
 
df = pl.read_csv("data.csv")
walker = pyg.walk(df, computation="browser")

PyArrow Table

Les PyArrow Tables sont prises en charge par le type DataFrame public et par les tests des parsers.

import pyarrow as pa
import pygwalker as pyg
 
table = pa.table({
    "city": ["London", "Paris", "Tokyo"],
    "sales": [120, 95, 140],
})
 
walker = pyg.walk(table, computation="browser")

Database Connector

Utilisez Connector lorsque les données doivent rester derrière une requête SQL au lieu d'être chargées d'abord dans une DataFrame locale.

from pygwalker.data_parsers.database_parser import Connector
import pygwalker as pyg
 
conn = Connector(
    "postgresql+psycopg2://username:password@host:5432/database",
    "SELECT * FROM table_name",
)
 
walker = pyg.walk(conn, spec_path="./gw_config.json", computation="kernel")

Les datasets Connector sont traités par défaut comme des entrées en calcul kernel, car les requêtes ont besoin d'un backend actif.

Walker réutilisable

Créez un Walker lorsque vous voulez faire circuler le même dataset et la même configuration dans plusieurs adaptateurs.

import pygwalker as pyg
 
walker = pyg.Walker(
    df,
    spec_path="./gw_config.json",
    computation="browser",
)
 
walker.show()
html = pyg.to_html(walker, width="100%", height="720px")

Les adaptateurs refusent les options de construction qui entrent en conflit avec un Walker existant. Placez spec_path, field_specs, appearance et computation dans le constructeur Walker.

FieldSpec

FieldSpec vous permet de remplacer les métadonnées de champs inférées.

from pygwalker import FieldSpec
import pygwalker as pyg
 
field_specs = [
    FieldSpec(
        fname="order_date",
        semantic_type="temporal",
        analytic_type="dimension",
        display_as="Order Date",
    ),
    FieldSpec(
        fname="revenue",
        semantic_type="quantitative",
        analytic_type="measure",
        display_as="Revenue",
    ),
]
 
pyg.walk(df, field_specs=field_specs)

Définition :

FieldSpec(
    fname: str,
    semantic_type: "?" | "nominal" | "ordinal" | "temporal" | "quantitative" = "?",
    analytic_type: "?" | "dimension" | "measure" = "?",
    display_as: str = None,
)

Utilisez "?" pour laisser PyGWalker inférer la valeur.

Pièges courants

PiègeCorrection
Passer un fichier spec local via spec dans du nouveau codeUtilisez spec_path="./gw_config.json" pour rendre les fichiers locaux explicites.
Passer à nouveau spec_path lorsqu'un adaptateur reçoit un WalkerPlacez spec_path dans pyg.Walker(...) à la place.
Exporter du HTML statique avec computation="kernel" ou "cloud"Utilisez computation="browser" pour les exports statiques.
Utiliser l'ancien kernel_computation=True dans de nouveaux exemplesUtilisez computation="kernel".

Guides associés