我有一个叫做 omg_function 的函数。 (去掉了关注问题核心的功能) omg_function 返回“文本”。
“文本”然后根据 .csv 文件进行基准测试,并计算重复项。 输出存储在变量“data”中
使用 tkinter,我想将变量数据插入到树视图中。 Treeview 需要在 3000 之后重置并替换为来自变量“数据”的新输入。
函数 omg_function 和 tkinter 需要同时运行,Treeview 应该使用“数据”的输出进行更新
我陷入了错误
对于索引,data.iterrows() 中的行: AttributeError: 'str' 对象没有属性 'iterrows'
如您所见,我通过 print(type(df)) 和 print(type(data)) 检查并返回它是 pandas。
有什么建议吗?
import pandas as pd
import tkinter as tk
from tkinter import ttk
import pandastable as pt
class TreeviewUpdater:
def __init__(self, root, update_interval):
self.root = root
self.update_interval = update_interval
self.treeview = tk.ttk.Treeview(root)
self.treeview.pack()
self.update_treeview()
def update_treeview(self):
data = omg_function() # call your function to get new data
self.treeview.delete(*self.treeview.get_children()) # clear existing treeview items
for index, row in data.iterrows():
self.treeview.insert('', 'end', text=index, values=row.tolist()) # insert new items to the treeview
self.root.after(self.update_interval, self.update_treeview) # schedule next update
#def omg_function():
while True:
text = omg_function()
df = pd.read_csv('C:\\Users\\*****\\Documents\\Testdata.csv') #Read benchmark file
text_words = set(text.split())
def count_duplicates(row):
row_words = row.astype(str).tolist()
return len(set(row_words) & text_words)
df['n_matches'] = df.apply(count_duplicates, axis=1)
print(type(df))
data = df
pass
if __name__ == '__main__':
root = tk.Tk()
treeview_updater = TreeviewUpdater(root, update_interval=3000)
root.mainloop()
我陷入了错误 对于索引,data.iterrows() 中的行: AttributeError: 'str' 对象没有属性 'iterrows'