Core PyGraphistry workflow: auth, DataFrame-to-graph shaping, and first interactive plot. Use when asked to "register graphistry", "get started with pygraphistry", "plot my edges dataframe", "graphistry.register()", "bind src and dst columns", "make a hypergraph", "materialize nodes", or any first-graph / ETL-to-plot task. Also triggers on "first graphistry graph", "graphistry install", "api=3", or questions about graphistry auth credentials. Proactively suggest when the user is setting up grap…
# Build graph from multiple entity columns in one table
hg = graphistry.hypergraph(df, ['actor', 'event', 'location'], engine='pandas')
hg['graph'].plot()
ETL shaping checklist
Normalize identifier columns before binding (src/dst/id type consistency, null handling).
Prefer a plain type column on both edges and nodes for legend-friendly defaults and consistent category encodings.
Deduplicate high-volume repeated rows before first upload.
Materialize nodes for node-centric steps:
g = graphistry.edges(edges_df, 'src', 'dst').materialize_nodes()
Practical checks
Confirm source/destination columns are non-null and correctly typed.
Materialize nodes if needed (g.materialize_nodes()) before node-centric operations.
Start with smaller slices for first render on large data.
For GFQL execution, explicitly request engine='polars' to retain Polars results; the automatic/default path does not select Polars. The exact engine literals are 'pandas', 'cudf', 'dask', 'daskcudf', 'polars', 'polars-gpu', 'auto' — 'polars-gpu' is hyphenated, and there is no polarsgpu spelling.
gfql() has no strict= argument. Off-engine analytic policy is set with graphistry.compute.gfql.lazy.setcallmode('auto'|'strict') or the GFQLPOLARSCALL_MODE env var; see pygraphistry-gfql for the engine section.
Do not recommend hypergraph(..., engine='polars'|'polars-gpu') yet: the current API annotation lists them, but the upstream hypergraph frame implementation still lacks their dispatch path. Use the supported pandas/cuDF hypergraph engines, then opt into Polars/Polars-GPU for subsequent GFQL work when appropriate.
For neighborhood expansion and pattern mining, always use .gfql([...]) or .gfql("MATCH ..."). The methods hop() and chain() are deprecated.
Keep credentials in environment variables only; do not hardcode usernames/passwords/tokens.