Tkinter中Treeview插入CSV数据格式异常求助
问题解决:Tkinter Treeview 导入CSV数据列显示异常
问题原因
你当前的代码里,df.iterrows()返回的row是Pandas Series对象,直接把它传给tree.insert的values参数时,Treeview会把整个Series当作单个值,导致所有数据都挤在第一列,这就是你看到的异常效果。
修正后的代码
把row转换成元组或列表,让Treeview能识别每一列对应的值:
def read_csv_file(csv='########'): # 读取CSV文件并创建DataFrame df = pd.read_csv(csv, index_col=False) # 遍历DataFrame的行 for index, row in df.iterrows(): # 将Series转成元组,让Treeview按列分配数据 self.tree.insert("", "end", values=tuple(row))
额外检查点
- 确认你的Treeview已经提前设置了和CSV列数一致的列,比如:
# 假设CSV有3列,设置对应的列 self.tree["columns"] = ("col1", "col2", "col3") # 设置列标题 self.tree.heading("col1", text="列1") self.tree.heading("col2", text="列2") self.tree.heading("col3", text="列3") - 如果CSV的表头需要显示在Treeview顶部,记得先插入表头行(如果你的Treeview没有默认显示表头的话)。
内容的提问来源于stack exchange,提问作者Paul Corcoran
相关产品推荐
相关产品推荐

