Pandas Dataframe 格式错误

g52tjvyc  于 2023-02-07  发布在  其他
关注(0)|答案(2)|浏览(126)

我试图在tkinter python中显示一个Pandas数据框,但是所有的列都没有对齐。
首先,此函数从日志表中获取这4列并将其转换为DataFrame

def show_log():
    df = pandas.read_sql("SELECT id, user_id, book_id, action FROM library.log LIMIT 10", con=mydb)
    blankIndex = [''] * len(df)
    df.index = blankIndex
    return df

然后,此函数使用 Dataframe 创建tkinter标签

def show_log(self):
        self.label_show_log = tk.Label(self.master, text=fu.show_log(), borderwidth=2, relief="groove")
        self.label_show_log.pack()

这是我得到的tkinter输出--很难看:

我想让所有的列和数据均匀对齐!谢谢你的帮助!:)

qnyhuwrf

qnyhuwrf1#

标签需要使用固定宽度(或等宽)字体,例如"Courier New":

def show_log(self):
        self.label_show_log = tk.Label(self.master, text=fu.show_log(),
                                       borderwidth=2, relief="groove",
                                       font=("Courier New", 10))
        self.label_show_log.pack()

结果:

mrphzbgm

mrphzbgm2#

我使用pandastable在tkinter中显示 Dataframe
安装:pip安装可移植
代码:

import pandas as pd
from pandastable import Table

#Create DataFrame class
class DataFrameTable(Frame):
    def __init__(self, parent=None, df=pd.DataFrame()):
        super().__init__()
        self.parent = parent
        self.pack(fill=BOTH, expand=True) 
        self.table = Table(
            self, dataframe=df,
            showtoolbar=False,
            showstatusbar=True,
            editable=False)
        self.table.show()

#Tkinter window
root = Tk()
#Show Table
DataFrameTable(root, your_dataframe)
root.mainloop()

相关问题