显示与python交互表的最佳方法(用户可调整列)

Dec*_*lan 5 python data-visualization pandas

用python3显示漂亮的交互式表(2d)有什么好的选择?希望用户能够对行进行排序(例如,通过单击列标题),显示/隐藏列等。

理想情况下,无需使用(不可伪装的)jupyter笔记本。

如果Im没错,那么使用jupyter笔记本执行此操作似乎比使用“常规” python容易得多。为什么是这样?

如果您将%matplotlib设置为inline,则调用pandas.head()之类的东西会自动显示正确的gui?

提前致谢

Dec*_*lan 1

使用上面pythonspot中描述的表格小部件,需要通过创建和插入单独的 QTableWidgetItems 来单独添加每一行数据。例如

  self.tableWidget.setItem(0, 0, QTableWidgetItem("Cell (1,1)"))
Run Code Online (Sandbox Code Playgroud)

在某些情况下这可能就足够了,但它并不能很好地概括。

PandasTableView 是一种更面向 MVC 的方法,它使用 QTableView 和关联的模型 (QAbstractTableModel) 类(在运行时提供数据,例如在读取 cvs 文件后)。stackoverflow中提到了它 ,完整的代码可以在github上找到

尽管需要更多代码并且更难以理解,但它是最灵活的,并且几乎是我所寻找的。尤其重要的是,它展示了如何合并 pandas 数据框中的数据。

有各种解决方案(例如QGrid)仅适用于 Jupyter 笔记本(大概在幕后它们使用 html 表格等,这就是它们需要浏览器/笔记本环境的原因)。