我使用QTableWidget
from PyQt 来显示一个DataFrame
. 我创建一个QTableWidgetObject
,然后用QTableWidgetItems
创建的DataFrame
值填充。以下是读取 CSV 文件、创建 CSV 文件DataFrame
,然后在 GUI 中显示的代码片段:
df = read_csv(filename, index_col = 0,header = 0)
self.datatable = QtGui.QTableWidget(parent=self)
self.datatable.setColumnCount(len(df.columns))
self.datatable.setRowCount(len(df.index))
for i in range(len(df.index)):
for j in range(len(df.columns)):
self.datatable.setItem(i,j,QtGui.QTableWidgetItem(str(df.iget_value(i, j))))
更新:
由于这个答案很旧,因此值得更新。现在有许多选项可用于在 GUI 中查看数据框。
- 正如其他人指出的那样,Spyder 等 Python IDE 带有数据框查看器。
- qgrid是 jupyter notebook 小部件的另一个选项,它在 notebook 中呈现数据框。
如果有人仍然想编写一个简单的 GUI 来查看 Jupyter 中的数据帧,以下是使用 Pyqt5 的完整的最小示例。
%gui qt5
from PyQt5.QtWidgets import QWidget,QScrollArea, QTableWidget, QVBoxLayout,QTableWidgetItem
import pandas as pd
win = QWidget()
scroll = QScrollArea()
layout = QVBoxLayout()
table = QTableWidget()
scroll.setWidget(table)
layout.addWidget(table)
win.setLayout(layout)
df = pd.DataFrame({"a" : [4 ,5, 6],"b" : [7, 8, 9],"c" : [10, 11, 12]},index = [1, 2, 3])
table.setColumnCount(len(df.columns))
table.setRowCount(len(df.index))
for i in range(len(df.index)):
for j in range(len(df.columns)):
table.setItem(i,j,QTableWidgetItem(str(df.iloc[i, j])))
win.show()
![在此处输入图像描述](https://i.stack.imgur.com/edZpV.png)