如何使用列表填充Python的PrettyTable生成DataFrame描述性统计表
解决方案
核心用Python的序列解包运算符*搭配DataFrame自带的列名属性,无需手动指定下标或列名,适配任意列数的数据集。
以下是可直接运行的完整代码:
from prettytable import PrettyTable # 你的统计量计算逻辑 means = df.mean() medians = df.median() standard_deviations = df.std() variances = df.var() # 初始化表格 x = PrettyTable() x.title = 'Dataset Summary Statistics' # 自动生成表头:直接取DataFrame原始列名,不需要手动录入 # 如果要自定义列名为Var(1)、Var(2)格式,把下一行替换为注释内容即可 # x.field_names = ['Metric'] + [f'Var({i+1})' for i in range(len(df.columns))] x.field_names = ['Metric'] + df.columns.tolist() # 自动填充行:用*解包统计量列表,自动适配任意列数,无需手动写下标 x.add_row(['Mean', *means.tolist()]) x.add_row(['Median', *medians.tolist()]) x.add_row(['Standard Deviation', *standard_deviations.tolist()]) x.add_row(['Variance', *variances.tolist()]) print(x)
逻辑说明
- 表头生成:
df.columns.tolist()可以直接拿到DataFrame所有列的原始名称,不需要手动逐个填写;如果需要统一替换为序号命名的格式,用列表生成式即可批量生成。 - 行填充:
*是Python的序列解包运算符,会自动把统计量列表拆成逐个参数传给add_row方法,不管数据集有多少列都可以自动适配,完全不需要手动写means[0]、means[1]这类下标引用。
内容的提问来源于stack exchange,提问作者Archie Macfarlane
相关产品推荐
相关产品推荐

