我对Python还是很陌生,现在正努力为打印输出格式化好数据。
我有三个列表:
list1 = [a, b, c, a, b, c, a, b, c]
list2 = [day1, day2, day3]
list3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
现在,我想以表格格式来表示它,就像这样:
------------+--------+-------+-------+
| User | day1 | day2 | day3 |
+============+========+=======+=======+
|a | 1 | 2 | 3 |
+------------+--------+-------+-------+
| b | 4 | 5 | 6 |
+----- ------+--- ----+-------+ ------+
|c | 7 | 8 | 9 |
我已经厌倦了诸如texttable之类的不同模块,并且还尝试使用For循环组合。但我仍然无法捕捉正确的组合。
答案 0 :(得分:3)
我过去使用过prettyTable,在完成此任务方面非常有效。 PrettyTable link
更新:
也请参阅此stackoverflow问题以获取更多详细信息-How to use PrettyTable
示例代码(copied from the following link)试图说明它的作用(尽管它使用的是从PrettyTable分叉的程序包,但我相信用法仍然相同)。
#!/usr/bin/python3
from prettytable import PrettyTable
x = PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
x.add_row(["Hobart", 1357, 205556, 619.5])
x.add_row(["Sydney", 2058, 4336374, 1214.8])
x.add_row(["Melbourne", 1566, 3806092, 646.9])
x.add_row(["Perth", 5386, 1554769, 869.4])
print(x)
这是一个非常简单的答案。但是,它确实显示了设置和使用它是多么容易。
谢谢。
答案 1 :(得分:0)
Astropy有一个很好的asciitables库,似乎可以解决这个问题。
http://docs.astropy.org/en/latest/io/ascii/index.html
python-tabulate也似乎试图解决此问题:
https://bitbucket.org/astanin/python-tabulate
但是据我所知,Pandas是用于表格数据的默认python库。看看Jupyter笔记本中的桌子有多漂亮!
要将数据框从列表中删除,您可以在安装pandas
的情况下执行以下操作:
import pandas a pd
list1 = [a, b, c, a, b, c, a, b, c]
list2 = [day1, day2, day3]
list3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
df = pd.DataFrame({
"list1": list1,
"list2": list2,
"list3": list3,
})