Pandas2.2 DataFrame
Computations descriptive stats
方法 |
描述 |
DataFrame.abs() |
用于返回 DataFrame 中每个元素的绝对值 |
DataFrame.all([axis, bool_only, skipna]) |
用于判断 DataFrame 中是否所有元素在指定轴上都为 True |
DataFrame.any(*[, axis, bool_only, skipna]) |
用于判断 DataFrame 中是否至少有一个元素在指定轴上为 True |
DataFrame.clip([lower, upper, axis, inplace]) |
用于截断(限制)DataFrame 中的数值 |
DataFrame.corr([method, min_periods, …]) |
用于计算 DataFrame 中各列之间的相关系数矩阵(Correlation Matrix) |
DataFrame.corrwith(other[, axis, drop, …]) |
用于计算当前 DataFrame 的每一列(或行)与另一个 Series 或 DataFrame 中对应列的相关系数 |
DataFrame.count([axis, numeric_only]) |
用于统计 DataFrame 中每列或每行的非空(非 NaN)元素数量 |
DataFrame.cov([min_periods, ddof, numeric_only]) |
用于计算 DataFrame 中每对列之间的协方差 |
DataFrame.cummax([axis, skipna]) |
用于计算 DataFrame 中每列或每行的累计最大值(cumulative maximum) |
DataFrame.cummin([axis, skipna]) |
用于计算 DataFrame 中每列或每行的累计最小值(cumulative minimum) |
DataFrame.cumprod([axis, skipna]) |
用于计算 DataFrame 中每列或每行的累计乘积(cumulative product) |
DataFrame.cumsum([axis, skipna]) |
用于计算 DataFrame 中每列或每行的累计和(cumulative sum) |
DataFrame.describe([percentiles, include, …]) |
用于快速生成数据集的统计摘要(summary statistics) |
pandas.DataFrame.describe()
pandas.DataFrame.describe()
是一个非常常用的函数,用于快速生成数据集的统计摘要(summary statistics)。默认情况下,它会对数值型列计算常见的描述性统计指标,如均值、标准差、最小最大值、四分位数等;对对象类型(字符串)列则输出数量、唯一值个数、最常见值等信息。
方法签名:
DataFrame.describe(percentiles=None, include=None, exclude=None)
参数说明:
参数 |
类型 |
描述 |
percentiles |
list-like of floats, optional |
要包含的百分位数(介于 0 和 1 之间),默认为 [0.25, 0.5, 0.75] ,即四分位数。 |
include |
‘all’, list of dtypes or None (default) |
指定要包括的列的数据类型。例如:['object', 'number'] 或 'all' 表示所有列。 |
exclude |
list of dtypes, optional |
指定要排除的列的数据类型。 |
默认输出内容(针对数值型列):
count
:非空值数量
mean
:平均值
std
:标准差
min
:最小值
25%
:第一四分位数(下四分位数)
50%
:第二四分位数(中位数)
75%
:第三四分位数(上四分位数)
max
:最大值
✅ 示例及结果:
示例1:默认行为(仅数值列)
import pandas as pd
df = pd.DataFrame({
'Age': [23, 45, 31, 22, 34],
'Salary': [50000, 80000, 60000, 45000, 70000],
'Department': ['HR', 'IT', 'IT', 'HR', 'Sales']
})
print(df.describe())
输出结果:
Age Salary
count 5.000000 5.000000
mean 31.000000 61000.000000
std 9.152727 14352.700142
min 22.000000 45000.000000
25% 23.000000 50000.000000
50% 31.000000 60000.000000
75% 34.000000 70000.000000
max 45.000000 80000.000000
示例2:包含对象类型列(字符串)
print(df.describe(include='all'))
输出结果:
Age Salary Department
count 5.000000 5.000000 5
unique NaN NaN 3
top NaN NaN HR
freq NaN NaN 2
mean 31.000000 61000.000000 NaN
std 9.152727 14352.700142 NaN
min 22.000000 45000.000000 NaN
25% 23.000000 50000.000000 NaN
50% 31.000000 60000.000000 NaN
75% 34.000000 70000.000000 NaN
max 45.000000 80000.000000 NaN
示例3:自定义百分位数
print(df.describe(percentiles=[0.1, 0.5, 0.9]))
输出结果:
Age Salary
count 5.000000 5.000000
mean 31.000000 61000.000000
std 9.152727 14352.700142
min 22.000000 45000.000000
10% 22.200000 46000.000000
50% 31.000000 60000.000000
90% 41.800000 78000.000000
max 45.000000 80000.000000
示例4:仅显示对象类型列
print(df.describe(include=['object']))
输出结果:
Department
count 5
unique 3
top HR
freq 2
适用场景:
场景 |
描述 |
数据探索分析(EDA) |
快速了解数据分布、集中趋势和离散程度 |
缺失值检查 |
结合 count 判断是否存在缺失值 |
异常值检测 |
查看 min / max 是否有明显异常 |
特征工程前准备 |
确认各特征的基本统计特性是否合理 |
⚠️ 注意事项:
- 默认只处理数值型列(int、float)
- 可通过
include='all'
包含所有列
- 对象类型列会返回
count
, unique
, top
, freq
等统计量
- 不会影响原始 DataFrame,返回新 DataFrame
总结:
特性 |
描述 |
功能 |
生成 DataFrame 的统计摘要 |
默认行为 |
仅统计数值型列 |
支持扩展 |
可通过 include /exclude 控制统计列类型 |
是否修改原数据 |
否,返回新 DataFrame |
常用用途 |
数据探索、质量检查、特征分析 |
describe()
是数据分析中最基础但最重要的方法之一,适合在建模前或可视化前快速了解数据分布情况。