Skip to content
PYGWALKER
API 参考
数据集输入

PyGWalker 数据集输入

PyGWalker 处理表格数据。大多数公共 API 接受 pandas DataFrame、polars DataFrame、pyarrow Table、数据库连接器和连接器式 SQL/data-source 字符串。部分适配器也接受可复用的 pygwalker.Walker

支持的输入矩阵

数据集输入典型 API说明
pandas DataFrame所有主要 API最常见的本地输入。
polars DataFrame所有主要 API通过 DataFrame parser 层解析。
pyarrow Table所有主要 API公共 API 签名和 parser 测试均支持。
database Connectorwalkrendertable、Streamlit、Gradio、webserver、cloud helperConnector 数据集使用 kernel 侧查询。
SQL/data-source string顶层、notebook、anywidget、marimo、webserver、component、HTML chart helper用于适配器支持的连接器式路径。
pygwalker.Walkerwalk、anywidget、marimo、webserver、Streamlit、to_html复用已经构造好的 PyGWalker 对象。

Pandas

当数据已经在内存中时使用 pandas。

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

Polars

Polars DataFrame 可以直接传入。

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

PyArrow Table

公共 DataFrame 类型和 parser 测试均支持 PyArrow Table。

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

当数据应停留在 SQL 查询之后,而不是先加载为本地 DataFrame 时,请使用 Connector

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

Connector 数据集默认按 kernel-computation 输入处理,因为查询需要 live 后端。

可复用 Walker

当你希望同一份数据集和配置流转到多个适配器时,请创建 Walker

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

适配器会拒绝与已有 Walker 冲突的构造选项。请将 spec_pathfield_specsappearancecomputation 放在 Walker 构造函数上。

FieldSpec

FieldSpec 可用于覆盖自动推断的字段元数据。

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)

定义:

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

使用 "?" 让 PyGWalker 自动推断该值。

常见陷阱

陷阱修复方式
在新代码中通过 spec 传入本地 spec 文件使用 spec_path="./gw_config.json",让本地文件更明确。
适配器接收 Walker 后又传入 spec_path改为在 pyg.Walker(...) 上设置 spec_path
使用 computation="kernel""cloud" 导出静态 HTML静态导出请使用 computation="browser"
新示例仍使用旧的 kernel_computation=True使用 computation="kernel"

相关指南