【发布时间】:2017-12-08 14:53:10
【问题描述】:
我正在尝试在 tkinter 中创建一个 Pandas 的 DataFrame GUI,它会在用户更改单元格的值时更新(每个单元格都是一个条目)。我认为将 DataFrame 转换为 tkinter 变量(tk.StringVar、tk.IntVar...)将是实现这一目标的最佳方法。
我的问题: 我不确定如何将数据框转换为这些对象。我尝试使用 astype 函数,但它似乎没有转换类型。
我的问题: 1)如何将dataframe转换为tkinter变量?
2) 将数据帧转换为 ttkinter 变量是使数据帧立即更新的最佳方式吗?
【问题讨论】:
-
对于行和列中的每个元素,您必须执行
var = StringVar(value=df[row,col])或var = StringVar() ; var.set(df[row,col]))并保留在标准列表中。我认为pandas不能使用StringVar作为dtype -
您可以将值直接放入
Entry,并将bind()事件放入Entry,这将在Entry发生变化时执行函数。此函数可以将值从Entry复制到dataframe。或者您可以添加Button(即带有文本"Save")并仅在单击按钮时将数据从所有Entry复制到dataframe。
标签: python pandas user-interface tkinter