首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PrettyTable中使用add_columns创建表

在PrettyTable中使用add_columns创建表
EN

Stack Overflow用户
提问于 2021-10-01 09:23:09
回答 1查看 84关注 0票数 0

我正在尝试使用PrettyTable创建一个性能度量表。在给定表格布局的情况下,最好使用指标列表和带有add_column选项的值列表逐列填充表。但是,当我尝试这样做时,输出在一行中给出了所有列表值:

代码语言:javascript
复制
from prettytable import PrettyTable
mse=123
mae=456
r2=789
performance_metrics=['Mean Squared Error', 'Mean Absolute Error', 'R-Squared']
values=[mse, mae, r2]
#CREATE TABLE
table = PrettyTable()
table.title = 'Model Performance'
column_names=['Metric', 'Value']
table.add_column(column_names[0],[performance_metrics])
table.add_column(column_names[1],[values])
print(table)

+------------------------------------------------------------------------------+
|                              Model Performance                               |
+------------------------------------------------------------+-----------------+
|                           Metric                           |      Value      |
+------------------------------------------------------------+-----------------+
| ['Mean Squared Error', 'Mean Absolute Error', 'R-Squared'] | [123, 456, 789] |
+------------------------------------------------------------+-----------------+

我如何才能在不单独添加每行的情况下修复这个问题呢?

更新:重新阅读问题,我意识到我忘记了附加所需的输出,这显然类似于以下内容:

代码语言:javascript
复制
        +------------------------------------------------------------------------------+
        |                              Model Performance                               |
        +------------------------------------------------------------+-----------------+
        |                           Metric                           |      Value      |
        +------------------------------------------------------------+-----------------+
        | Mean Squared Error                                         | 123             |
        +------------------------------------------------------------+-----------------+
        | Mean Absolute Error                                        | 456             |
        +------------------------------------------------------------+-----------------+          
        | R-Squared                                                  | 789             |          
        +------------------------------------------------------------+-----------------+
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-01 09:58:51

您必须尝试使用循环来执行该操作,此时您正在将整个列表添加到一列中:

代码语言:javascript
复制
from prettytable import PrettyTable
mse=123
mae=456
r2=789
performance_metrics=['Mean Squared Error', 'Mean Absolute Error', 'R-Squared']
values=[mse, mae, r2]
#CREATE TABLE
table = PrettyTable()
table.title = 'Model Performance'
column_names=['Metric', 'Value']
table.field_names = [column_names[0], column_names[1]]

你必须使用add_row来滥用多个相同的列:

代码语言:javascript
复制
for i in range(len(performance_metrics)):
    table.add_row([performance_metrics[i],values[i]])
print(table)

输出:

代码语言:javascript
复制
+-----------------------------+
|      Model Performance      |
+---------------------+-------+
|        Metric       | Value |
+---------------------+-------+
|  Mean Squared Error |  123  |
| Mean Absolute Error |  456  |
|      R-Squared      |  789  |
+---------------------+-------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69403528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档