赞
踩
在Python开发环境中,输出数据时没有表格、没有对齐,当数据较多的情况下看起来非常的凌乱,估计很多人像我一样为这个事情而烦恼。
左图是我在PyCharm开发环境下输出的数据。下面我们通过Python的Texttable模块为数据添加表格框线,对比效果如图所示。
为输出的数据画表格主要使用Texttable模块,下面介绍几个关键的方法。
1.add_rows()方法
该方法用于为表格添加数据,主要参数及说明如下:
2.draw()方法
该方法用于绘制表格。
3.header()方法
该方法用于指定表的标题。
4.set_cols_align()方法
设置所需的列的对齐方式,主要参数及说明如下:
5.set_cols_valign()方法
设置所需的列的垂直对齐方式,主要参数及说明如下:
6.set_cols_dtype()方法
该方法用于设置数据类型,主要参数及说明如下:
下面使用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模块所有方法介绍如下:
(1)max_width
整数,指定表的最大宽度
如果设置为0,大小是无限的,因此单元格不会被包裹
(2)add_row(self, array)
添加一行,单元格可以包含换行符和制表符。
(3)add_rows(self, rows, header=True)
添加多行,rows参数可以是返回数组的迭代器,或按维数组;header参数指定是否使用第一行作为标题。
(4)draw(self)
画表格,表作为一个完整的字符串返回。
(5)header(self, array)
指定表头。
(6)reset(self)
重置实例、重置行和头
(7)set_chars(self, array)
设置用于在行和列之间划线的字符,数组应该包含4个字段,[水平,垂直,角,页眉],默认值为['-','|', '+', '=']
(8)set_cols_align(self, array)
设置列的对齐方式,数组的元素必须为"l"、"c"或"r"。
"l":列向左对齐
"c":列居中对齐
"r":列向右对齐
(9)set_cols_dtype(self, array)
设置列的数据类型,数组的元素应该是一个可调用对象或任意一个,值为"a"、"t"、"f"、"e"或"i"。
"a":尝试使用最合适的数据类型
"t":作为文本处理
"f":在十进制格式中将其视为浮点数
"e":在指数格式中被视为浮点数
"i":视为整型
对于给定的任何值,应返回格式化字符串。默认情况下,对每个列使用自动数据类型。
(10)set_cols_valign(self, array)
设置列垂直对齐方式,数组的元素必须为"t"、"m"或"b"。
"t":列与单元格顶部对齐
"m":列在单元格中间对齐
"b":在单元格底部对齐的列
(11)set_cols_width(self, array)
设置所需的列宽度,数组的元素应该是整数,指定每列的宽度。例如[10,20,30]
(12)set_deco(self, deco)
修饰表格,deco参数值如下:
所有选项默认开启
例如:
Texttable.BORDER | Texttable.HEADER
(13)set_header_align(self, array)
设置页眉对齐的方式,数组的元素必须为"l"、"c"或"r"
"l":列向左对齐
"c":列居中对齐
"r":列向右对齐
(14)set_max_width(self, max_width)
设置表的最大宽度,max_width参数是一个整数,指定表的最大宽度。如果设置为0,大小是无限的。
(15)set_precision(self, width)
设置浮点/指数格式所需的精度,width参数必须是一个整数>= 0,默认值设置为3
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。