【问题标题】:Display Pandas Dataframe in Tkinter Listbox在 Tkinter 列表框中显示 Pandas 数据框
【发布时间】:2020-05-23 10:47:46
【问题描述】:

我正在创建一个学习 python 的基本应用程序。

此应用程序将包含一个显示在 tkinter GUI 中的 pandas 数据框,用户可以在其中选择数据框中的行,然后使用每次用户选择特定行时填充的其他单独文本框编辑或删除该行。

目前,我只能在文本框中显示我的数据框,但这需要是一个列表框,以便用户可以轻松选择行并滚动浏览 100 行的数据框。

我的代码中的 sn-ps 如下:

   outp = Text(self.window,height = 10, width = 100) #declaring the text box
   outp.insert(END, df) #adding the dataframe (df) to the text box

我在互联网上搜索了答案,但解决方案都是针对这些用例的,他们通常说“使用标签框”。

当我将 Text 更改为 Listbox 时,数据框会显示在一长排中。

感谢任何意见。

【问题讨论】:

  • 为什么不试试Treeview
  • @jizhihaoSAMA 因为我不知道。我认为这会奏效。谢谢!

标签: python python-3.x pandas tkinter


【解决方案1】:

使用 Treeview 解决。

代码片段如下:

def df_to_list(self,df):

    self.tree["columns"] = df.columns.values.tolist()
    for x in range(len(df.columns.values)):
        self.tree.column(df.columns.values[x], width=100)
        self.tree.heading(df.columns.values[x], text=df.columns.values[x], command=self.populate_selection)

    for index, row in df.iterrows():
        self.tree.insert("",0,text=index,values=list(row))

    self.tree.grid(row=50,column=0,rowspan=1,columnspan=12,sticky=N+E+W+S)

    self.tree.bind("<<TreeviewSelect>>", self.populate_selection)

希望能帮助其他尝试这个的人

【讨论】:

    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2019-08-14
    • 1970-01-01
    • 2020-10-26
    • 2013-12-29
    相关资源
    最近更新 更多