You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kivy中用DataframeGUIKivy/MDDataTable展示Pandas DataFrame数据

Pandas DataFrame 嵌入Kivy界面实现方案

方案一:MDDataTable手动适配(无额外依赖,灵活可控)

你之前卡壳的行数据传入问题,本质是没对齐MDDataTable的参数格式,按下面的逻辑映射就能1:1匹配命令行打印DataFrame的效果:

  • 表头参数column_data:接收列表结构,每个元素为(列名, 列宽)格式,第一个列固定为索引列,和pandas打印时最左侧的index列对应,后续列直接取df.columns生成即可
  • 行数据参数row_data:接收二维列表,每一行的第一个元素为DataFrame对应行的索引值,后续元素按列顺序拼接该行的所有字段值即可
  • 关闭组件默认自带的勾选框、操作列,开启分页,排版就和终端打印效果完全一致

可直接运行的参考代码:

from kivymd.app import MDApp
from kivymd.uix.datatables import MDDataTable
from kivy.metrics import dp
import pandas as pd

class DfShowApp(MDApp):
    def build(self):
        # 替换为你自己处理完成的Pandas DataFrame即可
        df = pd.DataFrame(
            {
                "商品名称": ["无线耳机", "机械键盘", "便携充电器"],
                "价格": [299, 459, 89],
                "库存": [120, 76, 320]
            }
        )

        # 组装表头
        column_data = [("index", dp(20))]
        for col in df.columns:
            column_data.append((col, dp(35)))
        
        # 组装行数据
        row_data = []
        for idx, row in df.iterrows():
            row_data.append([idx] + list(row.values))

        # 初始化表格
        data_table = MDDataTable(
            column_data=column_data,
            row_data=row_data,
            use_pagination=True,
            check=False,
            pagination_menu_height=dp(200),
            rows_num=10
        )
        return data_table

if __name__ == "__main__":
    DfShowApp().run()

方案二:DataframeGUIKivy 直接调用

官方文档没讲清楚的核心逻辑是:这个组件不需要你手动拆分DataFrame内容,初始化时直接把DataFrame实例作为参数传入即可,组件内部已经做好了表头、行数据、样式的映射,默认展示效果和终端打印的DataFrame几乎一致。
参考调用代码:

from kivymd.app import MDApp
from dataframe_gui_kivy import DataframeGUIKivy
import pandas as pd

class DfShowApp(MDApp):
    def build(self):
        # 替换为你自己的DataFrame
        df = pd.read_csv("your_target_data.csv")
        # 直接传入df初始化组件即可,内置排序、筛选、分页功能
        df_gui = DataframeGUIKivy(dataframe=df)
        return df_gui

if __name__ == "__main__":
    DfShowApp().run()

常见踩坑:如果组件加载报错,优先检查版本兼容性,目前DataframeGUIKivy稳定适配pandas 1.3.0以上、KivyMD 1.1.0以上版本,版本不匹配会出现数据渲染异常。

内容的提问来源于stack exchange,提问作者filza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:57:30