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)元素数量 |
pandas.DataFrame.count()
pandas.DataFrame.count()
方法用于统计 DataFrame 中每列或每行的非空(非 NaN)元素数量。它是数据探索和缺失值检测中非常常用的函数之一。
一、方法签名
DataFrame.count(axis=0, numeric_only=False)
参数说明:
参数 | 类型 | 描述 |
---|---|---|
axis | {0/‘index’, 1/‘columns’}, 默认 0 |
0
:按列统计(返回每列的非空值个数)1
:按行统计(返回每行的非空值个数) |
|numeric_only
| bool, 默认False
|- 若为
True
,只统计数值型列(int、float) - 若为
False
,统计所有类型的列(包括字符串、布尔等) |
二、返回值
- 返回一个 Series:
- 如果
axis=0
(默认),索引是列名,表示每列的非空值数量; - 如果
axis=1
,索引是行索引,表示每行的非空值数量。
- 如果
三、使用示例及结果
示例1:基本用法(按列统计)
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, np.nan, 6],
'C': [np.nan, np.nan, np.nan],
'D': ['a', 'b', 'c']
})
result = df.count()
print(result)
输出:
A 3
B 2
C 0
D 3
dtype: int64
解释:
- 列 A 没有缺失值 → 3 个非空值
- 列 B 有一个
NaN
→ 2 个非空值 - 列 C 全为
NaN
→ 0 个非空值 - 列 D 是字符串类型,也被统计(因为
numeric_only=False
)
示例2:按行统计(axis=1
)
result = df.count(axis=1)
print(result)
输出:
0 3
1 2
2 2
dtype: int64
解释:
- 第0行:A、B、D 非空 → 3 个非空值
- 第1行:A、D 非空 → 2 个非空值
- 第2行:A、D 非空 → 2 个非空值
示例3:仅统计数值型列(numeric_only=True
)
result = df.count(numeric_only=True)
print(result)
输出:
A 3
B 2
C 0
dtype: int64
解释:
- 字符串列
D
被忽略,只统计数值型列 A、B、C。
示例4:结合 axis=1
和 numeric_only=True
result = df.count(axis=1, numeric_only=True)
print(result)
输出:
0 2
1 1
2 1
dtype: int64
解释:
- 只统计每行中的数值型列(A、B、C)
- 第0行:A、B 非空 → 2 个非空值
- 第1行:只有 A 非空 → 1 个非空值
- 第2行:只有 A 非空 → 1 个非空值
四、适用场景
场景 | 描述 |
---|---|
缺失值检测 | 快速查看哪些列/行存在缺失值 |
数据质量分析 | 统计有效观测数,评估数据完整性 |
特征工程 | 在建模前检查特征是否有足够数据 |
清洗数据前准备 | 决定是否删除缺失过多的列或行 |
五、注意事项
- 默认统计所有列(包括字符串、布尔等)
- 设置
numeric_only=True
可以只关注数值型列 - 不会修改原始 DataFrame,而是返回新 Series
- 对
NaN
值自动跳过不计数
六、总结
特性 | 描述 |
---|---|
功能 | 统计 DataFrame 中每列或每行的非空值数量 |
默认行为 | 统计所有类型列 |
支持方向 | 支持按列(axis=0 )或按行(axis=1 )统计 |
是否修改原数据 | 否,返回新 Series |
适用类型 | 所有类型列(可通过 numeric_only 控制) |
count()
是数据分析中最基础但最实用的方法之一,常用于数据质量检查、缺失值处理决策、特征选择等环节。