#python #prettytable
Вопрос:
Я пытаюсь создать таблицу показателей производительности с помощью PrettyTable. Учитывая расположение таблицы, было бы лучше заполнить таблицу по столбцам, используя список показателей и список значений с add_column
опцией. Однако, когда я пытаюсь это сделать, на выходе отображаются все значения списков в одной строке:
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] |
------------------------------------------------------------ -----------------
Как я могу исправить это, возможно, не прибегая к добавлению каждой строки самостоятельно?
ОБНОВЛЕНИЕ: Перечитывая вопрос, я понял, что забыл прикрепить желаемый вывод, который, очевидно, выглядит примерно следующим образом:
------------------------------------------------------------------------------
| Model Performance |
------------------------------------------------------------ -----------------
| Metric | Value |
------------------------------------------------------------ -----------------
| Mean Squared Error | 123 |
------------------------------------------------------------ -----------------
| Mean Absolute Error | 456 |
------------------------------------------------------------ -----------------
| R-Squared | 789 |
------------------------------------------------------------ -----------------
Ответ №1:
Вы должны попробовать использовать цикл для этой операции, в данный момент вы добавляете весь список в один столбец:
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, чтобы злоупотреблять умножением одних и тех же столбцов:
for i in range(len(performance_metrics)):
table.add_row([performance_metrics[i],values[i]])
print(table)
Выход:
-----------------------------
| Model Performance |
--------------------- -------
| Metric | Value |
--------------------- -------
| Mean Squared Error | 123 |
| Mean Absolute Error | 456 |
| R-Squared | 789 |
--------------------- -------
Комментарии:
1. Понятно, я думал, что это было бы обработано автоматически с помощью
add_column
. Спасибо