【问题标题】:Automatically adjusting columns width with pandastable使用 pandastable 自动调整列宽
【发布时间】:2021-10-21 20:14:31
【问题描述】:

我使用包pandastable 显示来自pandasdataframes。我想根据内容自动调整列的宽度。在pandastable 的文档(https://pandastable.readthedocs.io/en/latest/_modules/pandastable/core.html#Table.setRowColors)中有一个函数adjustColumnWidths。但是,该列仍然太小,尽管窗口中会有空间。我使用下面的代码,Dataframe 只是一个例子:

import tkinter as tk

from pandastable import Table
import pandas as pd

root = tk.Tk()
root.geometry("1500x1000")

frame = tk.Frame(root)
frame.pack(fill="both", expand=True)

df = pd.DataFrame()
df["column1"] = [1,2,32342323424342342324342332442323423234423423234999999]
df["column2"] = ["a","b","c"]
df["column3"] = ["a"*100]*3

pt = Table(frame, dataframe=df, width=300)
pt.adjustColumnWidths(limit=30)

pt.show()

root.mainloop()

【问题讨论】:

    标签: python pandas tkinter


    【解决方案1】:

    如果你查看pandastable的来源,Table的属性maxcellwidth默认设置为300。因此,即使您调用了adjustColumnWidths(),每列的宽度也不能大于maxcellwidth

    maxcellwidth设置为更大的值(足以容纳最长的字符串):

    pt = Table(frame, dataframe=df, width=300, maxcellwidth=1500)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-21
      • 2023-03-29
      • 2013-05-21
      • 2020-06-06
      • 2011-03-29
      • 2014-04-05
      • 2018-02-02
      相关资源
      最近更新 更多