本文介绍: 通过pyqt5的QTableView显示dataframe数据

提示文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示这里可以添加本文要记录的大概内容
大数据处理时,我们往往需要pandasdataframepyqt展示出来,这里提供一个简单的参考类,来帮助大家


提示:以下是本篇文章正文内容,下面案例可供参考

一、具体思路

获取dataframe的行和列,然后遍历dataframe,把其数据放到QTableView()中。

二、实现代码

代码如下:

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import numpy as np
import pandas as pd


class QDataTable(QWidget):
    """
    @MethodName: QDataTable
    @Description: 用来接纳数据数据表,在显示窗口显示
    @CalledBy:pyqtflowchart的QtreeWidegt
    @return: result_a
    @rtype: int
    """
    def __init__(self, data, parent=None):
        super(QDataTable, self).__init__(parent)
        # 设置初始大小
        self.resize(500, 300)
        # 获取dataframe的行列
        self.model = QStandardItemModel(data.shape[0], data.shape[1])
        # 设置水平方向的标头内容
        self.model.setHorizontalHeaderLabels(data.columns.values)
        for row in range(data.shape[0]):
            for column in range(data.shape[1]):
                sss = data[data.columns.values[column]][data.index.values[row]]
                sss = str(sss)
                item = QStandardItem(sss)
                # 设置每个位置文本值
                self.model.setItem(row, column, item)

        # 实例表格视图设置模型自定义模型
        self.tableView = QTableView()
        self.tableView.setModel(self.model)
        #  设置它不能被编辑
        self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)

        # 水平方向标签拓展剩下的窗口部分,填满表格
        self.tableView.horizontalHeader().setStretchLastSection(True)
        # 水平方向,表格大小拓展到适当的尺寸
        self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        # 设置布局
        layout = QVBoxLayout()
        layout.addWidget(self.tableView)
        self.setLayout(layout)



if __name__ == '__main__':
    app = QApplication(sys.argv)
    a = pd.DataFrame(np.arange(18).reshape(3, 6), index=['a', 'b', 'c'], columns=['A', 'B', 'C', 'D', 'E', 'F'])
    data = a
    table = QDataTable(data)
    table.show()
    sys.exit(app.exec_())


总结

使用的时候,直接往QDataTable类里面传一个自己的dataframe就行。

原文地址:https://blog.csdn.net/garbagerofsuct/article/details/125603543

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_6933.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注