如何用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
相关产品推荐
相关产品推荐

