【发布时间】:2026-01-06 21:00:01
【问题描述】:
我想将数据帧中的值写入 tkinter 树视图/表,但我无法执行此操作。 我的代码:
#Setting up tkinter window.
root = Tk()
tree = ttk.Treeview(root)
#taking file input through a dialog box from the user.
file = filedialog.askopenfile(parent=root,mode='rb',title='Choose a xlsx file')
#readinf the excel file selected by the user and then creating a dataframe of that file.
xls = pd.read_excel(file)
df = pd.DataFrame(xls)
#taking all the columns heading in a variable"df_col".
df_col = df.columns.values
#all the column name are generated dynamically.
tree["columns"]=(df_col)
counter = len(df)
#generating for loop to create columns and give heading to them through df_col var.
for x in range(len(df_col)):
tree.column(x, width=100 )
tree.heading(x, text=df_col[x])
#generating for loop to print values of dataframe in treeview column.
for i in range(counter):
tree.insert('', 0, values=(df[df_col[x]]][i]))
它没有打印列并显示 KeyError:0。
【问题讨论】:
-
df[df_col]与df相同,df[0]将是一个名为0的列,它不存在。 -
@Goyo df_col 是一个仅包含 df 列名的数组,而 df 包含具有列名和值的整个数据框
-
我在代码中做了一些更新
-
@Goyo 此代码将所有结果打印在 tkinter 树视图的单个列中,而在我的 excel 文件中有 6 列,我坚持如何在所有 6 列中打印输出,顺便说一句,谢谢您的回复。
标签: python-3.x pandas dataframe tkinter treeview