【问题标题】:Getting Index Number from pandastable从 pandastable 获取索引号
【发布时间】:2019-04-25 08:03:06
【问题描述】:

我正在尝试在 tkinter 窗口中显示 pandas 数据框,并且我了解了 pandastable 库。到目前为止,我可以使用下面的代码在 pandastable 中显示我的数据框,但我遇到了一个问题。 现在,如果我选择/单击 pandastable 中的某个索引,则相应的行会在表中突出显示。 问题是当我单击 pandastable 中的特定索引时,我想从 pandastable 获取选定的索引号

到目前为止,我尝试了 get_row_clicked(event)getSelectedRow(),但它只给了我点击/选择的行号。

import tkinter as tk
from tkinter import *
from pandastable import Table, TableModel
import pandas as pd

df = pd.read_csv(path to CSV file)

app = Tk()
app.geometry('600x400+200+100')
app.title('Table app')
f = tk.Frame(app)
f.pack(fill=BOTH,expand=1)

table = pt = Table(f, dataframe=df,
                        showtoolbar=True, showstatusbar=True)

pt.show()

def handle_left_click(event):   
    rowclicked = pt.get_row_clicked(event)
    print("RowClicked", rowclicked)
    rowsel = pt.getSelectedRow()
    print("RowSelected", rowsel) 

table.bind("<Button-1>",handle_left_click)

app.mainloop()

如果我点击 pandastable 的第二个索引,我希望索引值为 2,依此类推。

任何帮助将不胜感激。

【问题讨论】:

    标签: python-3.x pandas tkinter


    【解决方案1】:

    得到了解决方案... 文档中有一个名为 table.rowheader.bind 的事件,当它被选中时,它会为我们提供所需的索引号。我已经使用以下代码来获得解决方案:

    from pandastable import Table, TableModel
    import tkinter as tk
    import pandas as pd
    
    df = pd.read_file("Read your CSV file")
    
    app = tk.Toplevel()
    
    app.title('Table app')
    f = tk.Frame(app)
    f.pack(fill=BOTH,expand=1)
    
    table = pt = Table(f, dataframe=df, showtoolbar=True, showstatusbar=True)
    
    pt.show()
    
    def handle_left_click(event):
        """Handle left click"""
        rowclicked_single = table.get_row_clicked(event)
        print(rowclicked_single)
        table.setSelectedRow(rowclicked_single)
        table.redraw()
    
    pt.rowheader.bind('<Button-1>',handle_left_click)
    
    app.mainloop()
    

    【讨论】:

    猜你喜欢
    • 2019-02-04
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多