Pandas 数据运算全攻略
·
一、算术运算
对 DataFrame 列或元素进行基础数学操作,支持列与列、列与标量运算:
表格
| 运算类型 | 示例代码 | 说明 |
|---|---|---|
| 列间加法 | df['C1'] + df['C2'] | 对应位置元素相加 |
| 列间减法 | df['C1'] - df['C2'] | 对应位置元素相减 |
| 列与标量运算 | df['C1'] + 2 | 列中每个元素与标量运算 |
二、比较运算
通过比较运算符生成布尔值,常用于数据筛选:
表格
| 运算类型 | 示例代码 | 说明 |
|---|---|---|
| 列间比较 | df['C1'] < df['C2'] | 逐元素比较,返回布尔 Series |
三、汇总运算
1. 计数(count)
统计非空元素个数,支持按行 / 列统计:
表格
| 统计方式 | 示例代码 | 说明 |
|---|---|---|
| 列计数 | df.count() | 默认按列统计非空元素个数 |
| 行计数 | df.count(axis=1) | 按行统计非空元素个数 |
| 单列计数 | df['C1'].count() | 统计指定列非空元素个数 |
| 单行计数 | df.loc['S1'].count() | 统计指定行非空元素个数 |
2. 求和(sum)
对数据进行求和运算,支持按行 / 列 / 指定维度:
表格
| 求和方式 | 示例代码 | 说明 |
|---|---|---|
| 列求和 | df.sum() | 默认按列求和 |
| 行求和 | df.sum(axis=1) | 按行求和 |
| 单列求和 | df['C1'].sum() | 对指定列求和 |
| 单行求和 | df.loc['S1'].sum() | 对指定行求和 |
3. 平均值(mean)
计算数据的算术平均值,支持按行 / 列 / 指定维度:
表格
| 求平均方式 | 示例代码 | 说明 |
|---|---|---|
| 列平均 | df.mean() | 默认按列求平均 |
| 行平均 | df.mean(axis=1) | 按行求平均 |
| 单列平均 | df['C1'].mean() | 对指定列求平均 |
| 单行平均 | df.loc['S1'].mean() | 对指定行求平均 |
4. 最大值(max)
获取数据中的最大值,支持按行 / 列 / 指定维度:
表格
| 求最大方式 | 示例代码 | 说明 |
|---|---|---|
| 列最大 | df.max() | 默认按列取最大值 |
| 行最大 | df.max(axis=1) | 按行取最大值 |
| 单列最大 | df['C1'].max() | 对指定列取最大值 |
| 单行最大 | df.loc['S1'].max() | 对指定行取最大值 |
5. 最小值(min)
获取数据中的最小值,支持按行 / 列 / 指定维度:
表格
| 求最小方式 | 示例代码 | 说明 |
|---|---|---|
| 列最小 | df.min() | 默认按列取最小值 |
| 行最小 | df.min(axis=1) | 按行取最小值 |
| 单列最小 | df['C1'].min() | 对指定列取最小值 |
| 单行最小 | df.loc['S1'].min() | 对指定行取最小值 |
6. 中位数(median)
计算数据的中位数(需先排序),支持按行 / 列 / 指定维度:
表格
| 求中位数方式 | 示例代码 | 说明 |
|---|---|---|
| 列中位数 | df.median() | 默认按列求中位数 |
| 行中位数 | df.median(axis=1) | 按行求中位数 |
| 单列中位数 | df['C1'].median() | 对指定列求中位数 |
| 单行中位数 | df.loc['S1'].median() | 对指定行求中位数 |
7. 众数(mode)
获取数据中出现频率最高的值,支持按行 / 列 / 指定维度:
表格
| 求众数方式 | 示例代码 | 说明 |
|---|---|---|
| 列众数 | df.mode() | 默认按列求众数 |
| 行众数 | df.mode(axis=1) | 按行求众数 |
| 单列众数 | df['C1'].mode() | 对指定列求众数 |
8. 方差(var)
衡量数据离散程度,支持按行 / 列 / 指定维度:
表格
| 求方差方式 | 示例代码 | 说明 |
|---|---|---|
| 列方差 | df.var() | 默认按列求方差 |
| 行方差 | df.var(axis=1) | 按行求方差 |
| 单列方差 | df['C1'].var() | 对指定列求方差 |
9. 标准差(std)
方差的平方根,衡量数据离散程度,支持按行 / 列 / 指定维度:
表格
| 求标准差方式 | 示例代码 | 说明 |
|---|---|---|
| 列标准差 | df.std() | 默认按列求标准差 |
| 行标准差 | df.std(axis=1) | 按行求标准差 |
| 单列标准差 | df['C1'].std() | 对指定列求标准差 |
| 单行标准差 | df.loc['S1'].std() | 对指定行求标准差 |
10. 分位数(quantile)
计算数据的分位数,常用于描述数据分布:
表格
| 求分位数方式 | 示例代码 | 说明 |
|---|---|---|
| 四分之一分位数 | df.quantile(0.25) | 按列求 25% 分位数 |
| 四分之三分位数 | df.quantile(0.75) | 按列求 75% 分位数 |
| 单列分位数 | df['C1'].quantile(0.25) | 对指定列求分位数 |
| 单行分位数 | df.loc['S1'].quantile(0.75) | 对指定行求分位数 |
四、核心避坑点
- 维度一致性:列间运算需保证索引对齐,否则会产生
NaN。 - 缺失值处理:汇总运算默认忽略
NaN,可通过skipna=False强制包含。 - axis 参数:
axis=0表示按列操作,axis=1表示按行操作,切勿混淆。 - 众数特性:若存在多个众数,
mode()会返回所有众数,而非单一值。
总结
本文系统梳理了 Pandas 中数据运算的核心操作,涵盖算术运算、比较运算和汇总运算三大模块。通过结构化的代码示例和清晰的说明,帮助读者快速掌握数据运算的常用方法,提升数据分析效率。可直接作为个人笔记或发布到 CSDN 等平台,方便日后查阅与复用。
更多推荐
所有评论(0)