ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

告别静态表格输出:用ipydatagrid把Pandas DataFrame变成交互式网格的5种姿势

告别静态表格输出:用ipydatagrid把Pandas DataFrame变成交互式网格的5种姿势 告别静态表格输出用ipydatagrid把Pandas DataFrame变成交互式网格的5种姿势【免费下载链接】ipydatagridFast Datagrid widget for the Jupyter Notebook and JupyterLab项目地址: https://gitcode.com/gh_mirrors/ip/ipydatagridipydatagrid是一款为 Jupyter Notebook 和 JupyterLab 打造的高速DataGrid 交互式数据网格组件它能让你原本只能看一眼的 Pandas DataFrame 变成支持筛选、排序、选择联动、条件格式和直接编辑的动态表格。今天这篇文章将用 5 个实用姿势带你零基础把静态表格输出升级成专业级交互式网格。为什么需要交互式数据网格平时在 Notebook 里用df.head()输出表格只能得到一张静态截图式的数据展示不能排序、不能筛选、选择单元格也没有任何反馈。而ipydatagrid将 DataFrame 渲染成高性能网格后 点击表头即可排序表头自带筛选菜单️ 支持行/列/单元格三种选择模式且与 Python 端双向绑定 基于Vega Expressions实现条件格式给单元格涂色✏️ 开启editable后可直接在网格中编辑单元格并同步回 DataFrame一键安装30 秒完成配置JupyterLab 3 及以上版本开箱即用只需一条命令pip install ipydatagrid或使用 condaconda install -c conda-forge ipydatagrid核心类DataGrid定义在 ipydatagrid/datagrid.py它接收一个 Pandas DataFrame 作为第一个参数几乎零配置即可显示。姿势一DataFrame 直接上网格最简用法——导入、构造、显示三步搞定import pandas as pd from ipydatagrid import DataGrid df pd.read_csv(cars.json) # 任意 DataFrame 均可 grid DataGrid(df) grid默认情况下网格自动完成索引处理、列宽计算和滚动优化百万级数据也能流畅滚动底层是流式渲染架构前端源码见 js/core/streamingview.ts。姿势二选择联动双向绑定数据想让用户点中的行立刻驱动 Python 逻辑设置selection_mode即可grid DataGrid(df, selection_modecell) # 读取用户当前选中单元格的值 print(grid.selected_cell_values) # 也可以由 Python 端主动选区 grid.select(0, 0, 3, 5)三种选择粒度row/column/cell对应不同的分析场景选择结果实时双向同步非常适合做数据探索的点选即计算交互。更多用法可参考官方示例 examples/Selections.ipynb。姿势三条件格式用 Vega 表达式给数据上色通过grid_style传入样式属性颜色值可以是固定色也可以是Vega 表达式引用列名即可无需写一行渲染代码grid DataGrid( df, grid_style{ row_background_color: Expr(data.speed, 60) ? orange : white } )比如按speed列的值给整行着色、按日期高亮异常值都是几行表达式的事。官方演示见 examples/ConditionalFormatting.ipynb。姿势四为不同列定制渲染器数值列画条形图、字符串列渲染 HTML、链接列变成可点击超链接——DataGrid内置了多种CellRenderer源码见 ipydatagrid/cellrenderer.pyfrom ipydatagrid import BarRenderer, TextRenderer renderers { speed: BarRenderer(valuedata.speed), name: TextRenderer(valuedata.name), } grid DataGrid(df, base_row_size30, base_column_size300, renderersrenderers)除BarRenderer外还有HtmlRenderer、HyperlinkRenderer、ImageRenderer可用参考 examples/HtmlRenderer.ipynb 与 examples/BarRenderer.ipynb 可查看完整效果。姿势五开启单元格编辑网格即数据源只需一个参数editableTrue用户就能直接在网格里修改数据修改会自动写回Python 端的 DataFrame还能监听变更事件grid DataGrid(df, editableTrue) def on_change(change): print(f第 {change[row]} 行 {change[column]} 列 - {change[value]}) grid.on_cell_change(on_change)配合on_cell_click事件回调你可以轻松搭出网格中改数 → 后端即时响应的交互式分析工作台。小结一张表看懂 5 种姿势姿势关键参数适用场景直接上网格DataGrid(df)快速可视化选择联动selection_mode点选驱动计算条件格式grid_style Vega 表达式异常值高亮定制渲染renderers条形图/HTML/超链接单元格编辑editableTrue表格内直接改数从df.head()的静态输出到可排序、可筛选、可联动、可编辑的交互式网格ipydatagrid只用了不到 10 行 Python 代码。如果你的数据故事值得被点不妨今天就给 DataFrame 换上这个新引擎 【免费下载链接】ipydatagridFast Datagrid widget for the Jupyter Notebook and JupyterLab项目地址: https://gitcode.com/gh_mirrors/ip/ipydatagrid创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表