Pandastable将新列添加到现有数据帧

2024-10-01 00:19:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在脚本中使用pandastable库。基本上,下面的脚本将用户选择的.csv导入到pandastable中,并在tkinterGUI上正确显示

一旦导入,我想添加列。我假设使用这个dochttps://pandastable.readthedocs.io/en/latest/examples.html#basics及其列出的表方法可以很容易地做到这一点。例如:table.autoAddColumns(1)添加单个列,但是无论我如何尝试和使用它,我都无法让它工作

import csv
import tkinter as tk
import tkinter.ttk as tkrttk
from tkinter import *
from tkinter import filedialog

import pandas as pd
from pandastable import Table, TableModel
from PIL import Image, ImageFont, ImageTk

root = tk.Tk()
root.geometry("2000x1000")
root.title('Workshop Manager')
style = tkrttk.Style()
style.configure("Treeview.Heading", foreground='Red', font=('Helvetica', 10))


def select_input_file():
    global input_file_path
    input_file_path = filedialog.askopenfilename(
    filetypes=(("CSV files", "*.csv"),))
    app = TestApp(root, input_file_path)
    app.place(bordermode = INSIDE,height = 500, width = 2000, x =0, y=50)

class TestApp(tk.Frame):
     def __init__(self, parent, input_file_path):
        super().__init__(parent)
        self.table = Table(self, showtoolbar=False, showstatusbar=False)
        self.table.importCSV(input_file_path)
        self.table.show(input_file_path)
        ##Breaks here##
        self.table.autoAddColumns(1)

root.mainloop()

我试过使用table.autoAddColumns(1)。这也不管用

如果我使用self.table.autoAddColumns(1),我会得到错误AttributeError: 'TableModel' object has no attribute 'auto_AddColumns'

如果我使用table.autoAddColumns(1),我会得到错误NameError: name 'table' is not defined


Tags: csvpathfromimportself脚本inputtkinter
1条回答
网友
1楼 · 发布于 2024-10-01 00:19:06

这是pandastable中的一个bug

但是,您可以使用addColumn()函数。如果在没有参数的情况下调用它,将显示一个对话框来选择dtype并输入新列的名称

相关问题 更多 >