You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单条语句展示Python-Pandas的describe()表并对比多数据集

嘿,我明白你的痛点了——想把多个数据集的核心统计指标(均值、标准差、最大最小值这些)整合到一张表里,一次性对比展示,而不是零散地看每个groupby结果,对吧?这确实能大大提升结果的可读性,我给你分享两个实用的实现思路,都是用pandas就能搞定的:

方法1:先计算单个数据集统计量,再合并成对比表

先写一个通用函数来提取你需要的统计项,然后对每个数据集应用这个函数,最后把结果合并成横向对比的表格:

import pandas as pd

# 定义统计量计算函数,可根据需求增减项
def calculate_key_stats(df):
    return pd.DataFrame({
        'Mean': df.mean(numeric_only=True),
        'Std': df.std(numeric_only=True),
        'Max': df.max(numeric_only=True),
        'Min': df.min(numeric_only=True)
    })

# 假设你的三个数据集分别是df1、df2、df3
stats_df1 = calculate_key_stats(df1).assign(Dataset='First_Result_Set')
stats_df2 = calculate_key_stats(df2).assign(Dataset='Second_Result_Set')
stats_df3 = calculate_key_stats(df3).assign(Dataset='Third_Result_Set')

# 合并后转置,得到「统计项 vs 数据集」的对比格式
combined_stats = pd.concat([stats_df1, stats_df2, stats_df3])
comparison_table = combined_stats.pivot(
    index=combined_stats.index,  # 原数据集的列名
    columns='Dataset',
    values=['Mean', 'Std', 'Max', 'Min']
)

# 打印或导出表格
print(comparison_table)

运行后你会得到一张清晰的表:每行是原数据集的列,每列是不同数据集的统计值,所有结果一次性展示。

方法2:处理groupby后的分组统计结果

如果你的需求是基于分组后的统计对比(比如按某列分组后计算各数据集的指标),可以用类似的思路,先对每个数据集做groupby聚合,再合并结果:

# 按「Category」列分组,计算统计量
grouped_df1 = df1.groupby('Category').agg(
    First_Mean=('Target_Column', 'mean'),
    First_Std=('Target_Column', 'std'),
    First_Max=('Target_Column', 'max'),
    First_Min=('Target_Column', 'min')
)
grouped_df2 = df2.groupby('Category').agg(
    Second_Mean=('Target_Column', 'mean'),
    Second_Std=('Target_Column', 'std'),
    Second_Max=('Target_Column', 'max'),
    Second_Min=('Target_Column', 'min')
)
grouped_df3 = df3.groupby('Category').agg(
    Third_Mean=('Target_Column', 'mean'),
    Third_Std=('Target_Column', 'std'),
    Third_Max=('Target_Column', 'max'),
    Third_Min=('Target_Column', 'min')
)

# 按分组键合并所有结果
final_grouped_table = pd.concat([grouped_df1, grouped_df2, grouped_df3], axis=1)
print(final_grouped_table)

这样就能看到每个分组下,三个数据集的统计指标对比,不用切换多个表查看。

额外优化:让表格更美观

如果需要更直观的展示,可以用pandas的Styler给表格加样式,比如高亮最大/最小值:

styled_table = final_grouped_table.style.highlight_max(color='#90EE90').highlight_min(color='#FFCCCB')
# 导出成HTML文件,方便在浏览器查看或分享
styled_table.to_html('dataset_comparison.html')

内容的提问来源于stack exchange,提问作者Vural Erdogan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:34:02