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

如何用Pandas的describe()将多列变量合并为单变量统计

解决方法:将多列DataFrame合并为单个变量进行统计

没问题,要把你的5列DataFrame当成单个变量用describe()统计其实很简单,核心就是把整个数据集扁平化转成一维结构,再调用统计方法就行。下面给你具体的实现步骤:

1. 先构造你的示例DataFrame

首先我们先把你提供的数据转换成Pandas DataFrame:

import pandas as pd

# 你的原始数据
data = {
    'X1': [14, 42, 40, 74, 40, 74, 56, 85, 88, 3],
    'X2': [52, 15, 96, 99, 25, 58, 5, 65, 6, 5],
    'X3': [2, 86, 90, 8, 52, 91, 6, 17, 42, 84],
    'X4': [76, 79, 87, 75, 16, 2, 36, 4, 19, 33],
    'X5': [81, 52, 51, 95, 24, 9, 37, 2, 11, 56]
}
df = pd.DataFrame(data)

2. 方法一:用flatten()扁平化数据

这是最直接的方式,把DataFrame的二维数值数组转成一维,再包装成指定名称的Series:

# 将所有列的数值合并成一个一维Series,命名为X
combined_series = pd.Series(df.values.flatten(), name='X')
# 调用describe()获取统计结果
stats_result = combined_series.describe()

print(stats_result)

运行后会输出你预期的结果:

X
count 50.000000
mean 45.300000
std 32.567826
min 2.000000
25% 14.250000
50% 42.000000
75% 75.750000
max 99.000000

3. 方法二:用melt()转换数据结构

如果你想保留原始列的信息(虽然这里不需要),可以用melt()把宽表转成窄表,再提取数值列统计:

# 将宽表转换为窄表,值列命名为X
melted_df = df.melt(var_name='Original_Column', value_name='X')
# 对X列调用describe()
stats_result = melted_df['X'].describe()

这个方法得到的统计结果和上面完全一致,适合需要追溯数值来源列的场景。

两种方法都能完美实现你的需求,选你顺手的就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:12:59