0

我想创建一个有 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 |
+----------+----------+---------+---------+---------+
4

1 回答 1

0

如果您愿意在此处使用 Pandas,那么这里的代码片段应该可以使用。不确定如何读取您的标头和数据,因此我相信您可以使其更加灵活,但只是向您展示如何使用 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) 
于 2019-10-16T13:48:13.527 回答