如何在Tkinter Treeview中展示Pandas DataFrame身高前三的数据?
在Tkinter Treeview中展示身高前三的数据
当然没问题!我来帮你把那三条身高最高的数据放到Treeview里展示,直接看修改后的代码,我会一步步给你解释:
from tkinter import * from tkinter import ttk import pandas as pd root = Tk() root.title("身高前三数据展示") root.geometry("600x200") # 调大窗口,方便完整展示表格内容 # 创建DataFrame df = pd.DataFrame({ 'Name':['Chetan','yashas','yuvraj','Pooja','Sindu','Renuka'], 'Age': [20,25,30,18,25,20], 'Height': [155,160,175,145,155,165], 'Weight': [75,60,75,45,55,65] }) # 获取身高前三的数据(和你原来的代码逻辑一致) top3_height = df.nlargest(3, 'Height') # 创建Treeview表格组件 tree = ttk.Treeview(root) # 设置表格列:对应DataFrame的所有列,第一个空列是Treeview默认索引列,我们后面会隐藏它 tree['columns'] = list(df.columns) # 隐藏默认的索引列,只展示我们定义的列 tree['show'] = 'headings' # 给每一列设置标题和宽度 for col in df.columns: tree.heading(col, text=col) # 设置列标题 tree.column(col, width=100) # 设置列宽,保证内容不拥挤 # 把top3数据逐行插入到Treeview中 for idx, row in top3_height.iterrows(): # 把每行数据转成元组格式,插入到表格末尾 tree.insert('', END, values=tuple(row)) # 让表格占满窗口空间,随窗口大小自适应 tree.pack(expand=True, fill=BOTH) root.mainloop()
关键细节说明:
- 窗口调整:原来的
100x70窗口太小,改成600x200能完整展示所有列的内容。 - Treeview配置:通过
show='headings'隐藏Treeview默认的索引列,只展示我们需要的DataFrame列;循环设置列标题和宽度,保证表格美观。 - 数据插入:用
iterrows()遍历身高前三的每一行数据,转成元组后插入到表格中,这是Treeview接受的数据格式。 - 布局适配:用
pack(expand=True, fill=BOTH)让表格能随窗口大小自动调整,不会出现内容被截断的情况。
运行这段代码后,你就能看到一个清晰的表格窗口,里面完美展示了身高排名前三的用户数据啦!
内容的提问来源于stack exchange,提问作者Theo N
相关产品推荐
相关产品推荐

