AttributeError: 'str' object while Attribute is = Pandas

问题描述 投票:0回答:0

我有一个叫做 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'

pandas function tkinter
© www.soinside.com 2019 - 2024. All rights reserved.