Столбец Python / объединение имен полей - PullRequest
0 голосов
/ 16 октября 2019

Я хочу создать таблицу с 2 заголовками, но с 5 записями / столбцами и получить эту проблему:

Exception("Row has incorrect number of values, (actual) %d!=%d (expected)" %(len(row),len(self._field_names)))
Exception: Row has incorrect number of values, (actual) 5!=2 (expected)

Как объединить столбец 1 и столбец 2 в заголовке

Ввод:

+----------+----------+---------+---------+---------+
| Field 1  | Field 2  | Field 3 | Field 4 | Field 5 |
+----------+----------+---------+---------+---------+
| Adelaide | Brisbane |  Darwin |  Martin | Summary |
+----------+----------+---------+---------+---------+
|  Test1   |  Test2   |  Test3  |  Test4  |  Result |
+----------+----------+---------+---------+---------+

from prettytable import PrettyTable
x = PrettyTable()
x.hrules = 1
x.vrules = 1
x.header = True
x.add_row(["Adelaide","Brisbane","Darwin","Martin","Summary"])
x.add_row(["Test1","Test2","Test3","Test4","Result"])
print(x)

Вывод:

+----------+----------+---------+---------+---------+
|                    Names                | End     |
+----------+----------+---------+---------+---------+
| Adelaide | Brisbane |  Darwin |  Martin | Summary |
+----------+----------+---------+---------+---------+
|  Test1   |  Test2   |  Test3  |  Test4  |  Result |
+----------+----------+---------+---------+---------+

1 Ответ

0 голосов
/ 16 октября 2019

Если вы хотите использовать Панд, вот фрагмент кода, который должен работать. Не уверен, как будут считываться ваши заголовки и данные, поэтому я уверен, что вы можете сделать это более гибким, но просто покажу, как можно использовать Pandas и MultiIndex. Pandas действительно хорош при работе с данными и дает вам множество встроенных функций, поэтому, если вы будете этим заниматься регулярно, я бы посоветовал взглянуть на демонстрацию и посмотреть, что вы думаете.

    import pandas as pd
    header_row_1 = ["Names", "Names", "Names", "Names", "End"] 
    header_row_2 = ["Adelaide","Brisbane","Darwin","Martin","Summary"]  
    data = ["Test1","Test2","Test3","Test4", "Result"]
    tuples = list(zip(header_row_1, header_row_2)) 
    cols = pd.MultiIndex.from_tuples(tuples)
    df = pd.DataFrame([data], columns = cols) 
...