python笔记:qgrid

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python笔记:qgrid相关的知识,希望对你有一定的参考价值。

在Jupyter Notebook中像在Excel一样操作pandas的DataFrames,如sort/filter,并轻松把操作后的数据用于后续分析。

0 安装


pip install qgrid
jupyter nbextension enable --py --sys-prefix qgrid

1 基本使用方法

1.1 数据

import numpy as np
import pandas as pd
lst=np.arange(100).reshape(10,10)
df=pd.DataFrame(lst)
df  
'''

    0	1	2	3	4	5	6	7	8	9
0	0	1	2	3	4	5	6	7	8	9
1	10	11	12	13	14	15	16	17	18	19
2	20	21	22	23	24	25	26	27	28	29
3	30	31	32	33	34	35	36	37	38	39
4	40	41	42	43	44	45	46	47	48	49
5	50	51	52	53	54	55	56	57	58	59
6	60	61	62	63	64	65	66	67	68	69
7	70	71	72	73	74	75	76	77	78	79
8	80	81	82	83	84	85	86	87	88	89
9	90	91	92	93	94	95	96	97	98	99
'''

1.2 Show_grid

qgrid.show_grid(
    data_frame, 
    show_toolbar=None, 
    precision=None, 
    grid_options=None, 
    column_options=None, 
    column_definitions=None, 
    row_edit_callback=None)

1.2.1 参数说明

grid_options

创建SlickGrid时需要的选项
precision

int

浮点数值要显示的精度位数

show_toolbar是否显示带有添加/删除行选项的工具栏(添加是复制最后一行)

1.2.2 使用 

import qgrid
qgrid_df= qgrid.show_grid(df, show_toolbar=True)
qgrid_df

 

 

2 get_changed_df

比如我们remove了一个row(row 8),然后又add了两个row

 那么怎么把这个qgrid存下来呢?

qgrid_df_chose = qgrid_df.get_changed_df()
qgrid_df_chose

 3 get_selected_df

长按ctrl选择多行 

qgrid_df.get_selected_df()

 Qgrid API Documentation — qgrid 1.0 documentation

qgrid 的 jupyter labextension 安装在可选依赖项上失败(Windows)

【中文标题】qgrid 的 jupyter labextension 安装在可选依赖项上失败(Windows)【英文标题】:jupyter labextension install of qgrid failed on optional dependency (windows) 【发布时间】:2021-06-10 08:10:52 【问题描述】:

当我尝试jupyter labextension install qgrid时失败,日志文件中的核心错误如下:

$ webpack --config webpack.prod.minimize.config.js
[webpack-cli] ModuleNotFoundError: Module not found: Error: Can't resolve 'base/js/dialog'

这个错误发生的上下文太复杂了,有点搞笑:

Windows 10 >> Conda 环境 >> jupyter labextension install >> npm >> node yarn.js run >> webpack

截至两天前,从 conda 环境开始的所有内容都是新安装的。 (jupyter 实验室版本 3.0.9,节点版本 v14.16.0)

这个错误特别有趣的是,代码中对base/js/dialog的唯一引用是来自qgrid.widget.js的这条语句:

try 
  dialog = require('base/js/dialog');
 catch (e) 
  console.warn("Qgrid was unable to load base/js/dialog. " +
               "Full screen button won't be available");

现在我不知道webpack 是如何工作的,但似乎可选负载以某种方式导致了硬故障。我正在寻找有关如何解决此错误的任何见解。

(附加说明:我也尝试了jupyter lab build,以防万一它会神奇地修复问题,但它导致了同样的错误。)

【问题讨论】:

【参考方案1】:

这很可能是由于 qgrid 未更新以与 JypyterLab 3 一起使用造成的。https://github.com/quantopian/qgrid 有几个相关问题,例如#351.

不幸的是,这个扩展似乎没有定期更新。如果您不想留在 J2 上,可以查看 perspective 或 ipyaggrid。我在 JL3 上都用过。

【讨论】:

以上是关于python笔记:qgrid的主要内容,如果未能解决你的问题,请参考以下文章

Python笔记——2 数据类型

python数据分析入门学习笔记儿

python笔记一 数据类型基础

利用Python进行数据分析笔记:3.1数据结构

python学习笔记:python数据类型

python学习笔记:python数据类型