具有多个标题行的Python表

具有多个标题行的Python表,python,prettytable,Python,Prettytable,我需要创建一个表来显示在不同条件下收集的多组数据。这就是我需要的桌子的样子: Config 1 Config 2 Test Data 1 Data 2 Data 1 Data 2 abc 123 123 123 123 因此,使用配置1设置系统,然后收集两组数据。使用配置2重置系统,然后收集相同的数据集 我一直在尝试使用prettytable,但没有找到任何指定如何生成适用于以下多个列的第二个标题的内容。您可以编写一个函

我需要创建一个表来显示在不同条件下收集的多组数据。这就是我需要的桌子的样子:

        Config 1        Config 2
Test    Data 1  Data 2  Data 1  Data 2
abc     123     123     123     123
因此,使用配置1设置系统,然后收集两组数据。使用配置2重置系统,然后收集相同的数据集


我一直在尝试使用prettytable,但没有找到任何指定如何生成适用于以下多个列的第二个标题的内容。

您可以编写一个函数,使用最大列宽对齐所有数据项,如下所示:

def write_cols(data):
    col_spacer = "   "      # added between columns
    widths = [0] * len(data[0])

    # Calculate the widest entry for each column
    for row in data:
        widths[:] = [max(widths[index], len(str(col))) for index, col in enumerate(row)]

    return [col_spacer.join("{:<{width}}".format(col, width=widths[index]) for index, col in enumerate(row)) for row in data]

data = [['', 'Config 1', '', 'Config 2', ''], ["Test", "Data 1", "Data 2", "Data 1", "Data 2"], ["abc", "123", "123", "123", "123"]]

for row in write_cols(data):
    print row

您可以编写一个函数,使用最大列宽对齐所有数据项,如下所示:

def write_cols(data):
    col_spacer = "   "      # added between columns
    widths = [0] * len(data[0])

    # Calculate the widest entry for each column
    for row in data:
        widths[:] = [max(widths[index], len(str(col))) for index, col in enumerate(row)]

    return [col_spacer.join("{:<{width}}".format(col, width=widths[index]) for index, col in enumerate(row)) for row in data]

data = [['', 'Config 1', '', 'Config 2', ''], ["Test", "Data 1", "Data 2", "Data 1", "Data 2"], ["abc", "123", "123", "123", "123"]]

for row in write_cols(data):
    print row

需要明确的是:您已经有了数据,但需要一种方式来显示它们吗?如果您在数据结构方面需要帮助,我可以提供帮助。不幸的是,我没有在python中做太多的显示工作,因此如果是这样的话,我将很难提供帮助…我有一个文件,其中包含一些必须首先分析的数据,在这方面我很好,谢谢。只是要明确一点:您已经有了数据,但需要一种显示它们的方法吗?如果您在数据结构方面需要帮助,我可以提供帮助。不幸的是,我没有在python中做太多的显示工作,因此如果是这样的话,我将很难提供帮助…我有一个文件,其中包含一些必须首先分析的数据,在这方面我很好,谢谢。