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ées | API typiques | Notes |
|---|---|---|
| DataFrame pandas | Toutes les principales API | L'entrée locale la plus courante. |
| DataFrame polars | Toutes les principales API | Analysée par la couche de parser DataFrame. |
| pyarrow Table | Toutes les principales API | Prise en charge par les signatures publiques et les tests des parsers. |
Connector de base de données | walk, render, table, Streamlit, Gradio, webserver, helpers cloud | Les datasets Connector utilisent des requêtes côté kernel. |
| Chaîne SQL/source de données | API 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.Walker | walk, anywidget, marimo, webserver, Streamlit, to_html | Ré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ège | Correction |
|---|---|
Passer un fichier spec local via spec dans du nouveau code | Utilisez spec_path="./gw_config.json" pour rendre les fichiers locaux explicites. |
Passer à nouveau spec_path lorsqu'un adaptateur reçoit un Walker | Placez 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 exemples | Utilisez computation="kernel". |