Python为输出的数据绘制表格

本文介绍了如何使用Python的Texttable模块为输出的数据添加表格框线,以提高数据可读性。通过add_rows(), draw(), header(), set_cols_align()等方法,详细展示了如何设置数据、绘制表格、调整对齐方式等,帮助开发者更美观地展示DataFrame或其他数据结构中的信息。" 104774396,8521267,Linux包管理:apt与dpkg详解,"['Linux', '包管理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Python开发环境中,输出数据时没有表格、没有对齐,当数据较多的情况下看起来非常的凌乱,估计很多人像我一样为这个事情而烦恼。

左图是我在PyCharm开发环境下输出的数据。下面我们通过Python的Texttable模块为数据添加表格框线,对比效果如图所示。

数据使用表格前后的对比效果

为输出的数据画表格主要使用Texttable模块,下面介绍几个关键的方法。

1.add_rows()方法

该方法用于为表格添加数据,主要参数及说明如下:

  • rows:要添加的数据,可以是返回数组的迭代器,或者是逐维数组。
  • header:指定是否将第一行作为表格的标题。

2.draw()方法

该方法用于绘制表格。

3.header()方法

该方法用于指定表的标题。

4.set_cols_align()方法

设置所需的列的对齐方式,主要参数及说明如下:

  • l:左对齐。
  • c:居中对齐。
  • r:右对齐。

5.set_cols_valign()方法

设置所需的列的垂直对齐方式,主要参数及说明如下:

  • t:顶端对齐。
  • m:居中对齐。
  • b:底部对齐。

6.set_cols_dtype()方法

该方法用于设置数据类型,主要参数及说明如下:

  • a:自动,尝试使用最合适的数据类型。
  • t:作为文本。
  • f:作为十进制格式的浮点数处理。
  • e:按指数格式处理为浮点数。
  • i:作为整型。

下面使用Texttable为DataFrame数据画表格,具体实现步骤如下:

(1)导入Pandas和Texttable模块,代码如下。

import pandas as pd
from texttable import Texttable

(2)使用DataFrame对象创建学生成绩数据,代码如下:

# 创建学生成绩数据
data = [[110,120,110],[130,130,130],[130,120,130]]
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data,columns=columns)
print('学生成绩表')
print(df)

(3)为学生成绩数据绘制表格,代码如下:

# 为学生成绩数据绘制表格
print('学生成绩表')
tb=Texttable() # 初始化Texttable
tb.set_cols_align(['l','r','r']) # 设置对齐方式
tb.set_cols_dtype(['i','i','i']) # 设置每列的数据类型为整型
tb.header(df.columns) # 设置表头
tb.add_rows(df.values,header=False) # 为表格添加数据
print(tb.draw()) # 绘制表格

补充知识

Texttable模块所有方法介绍如下:

1max_width

整数,指定表的最大宽度

如果设置为0,大小是无限的,因此单元格不会被包裹

2add_row(self, array)

添加一行,单元格可以包含换行符和制表符。

3add_rows(self, rows, header=True)

添加多行,rows参数可以是返回数组的迭代器,或按维数组;header参数指定是否使用第一行作为标题。

4draw(self)

画表格,表作为一个完整的字符串返回。

5header(self, array)

指定表头。

6reset(self)

重置实例、重置行和头

7set_chars(self, array)

设置用于在行和列之间划线的字符,数组应该包含4个字段,[水平,垂直,角,页眉],默认值为['-''|' '+' '=']

8set_cols_align(self, array)

设置列的对齐方式,数组的元素必须为"l""c""r"

"l":列向左对齐

"c":列居中对齐

"r":列向右对齐

9set_cols_dtype(self, array)

设置列的数据类型,数组的元素应该是一个可调用对象或任意一个,值为"a""t""f""e""i"

"a":尝试使用最合适的数据类型

"t":作为文本处理

"f":在十进制格式中将其视为浮点数

"e":在指数格式中被视为浮点数

"i":视为整型

对于给定的任何值,应返回格式化字符串。默认情况下,对每个列使用自动数据类型。

10set_cols_valign(self, array)

设置列垂直对齐方式,数组的元素必须为"t""m""b"

"t":列与单元格顶部对齐

"m":列在单元格中间对齐

"b":在单元格底部对齐的列

11set_cols_width(self, array)

设置所需的列宽度,数组的元素应该是整数,指定每列的宽度。例如[10,20,30]

12set_deco(self, deco)

修饰表格,deco参数值如下:

  1. Texttable.BORDER:表格周围的边框
  2. Texttable.HEADER:页眉下面的水平线
  3. Texttable.HLINES:行与行之间的水平线
  4. Texttable.VLINES:列之间的竖线。

所有选项默认开启

例如:

Texttable.BORDER | Texttable.HEADER

13set_header_align(self, array)

设置页眉对齐的方式,数组的元素必须为"l""c""r"

"l":列向左对齐

"c":列居中对齐

"r":列向右对齐

14set_max_width(self, max_width)

设置表的最大宽度,max_width参数是一个整数,指定表的最大宽度。如果设置为0,大小是无限的。

15set_precision(self, width)

设置浮点/指数格式所需的精度,width参数必须是一个整数>= 0,默认值设置为3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛数据分析

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值