780 字
4 分钟
页面浏览--访问次数--
数据分析|DataFrame的常用方法

20.1 DataFrame 常用方法总览#

常用方法总览#

方法说明
head()查看前 n 行数据,默认 5 行
tail()查看后 n 行数据,默认 5 行
isin()判断元素是否包含在参数集合中
isna()判断是否为缺失值(如 NaN 或 None)
sum()求和,自动忽略缺失值
mean()平均值
min()最小值
max()最大值
var()方差
std()标准差
median()中位数
mode()众数(可返回多个)
quantile(q)分位数,q 取 0~1 之间
describe()常见统计信息(count、mean、std、min、25%、50%、75%、max)
value_counts()每个唯一值的出现次数
count()非缺失值数量
duplicated()判断行是否重复
drop_duplicates()去除重复行
sample()随机抽样
sort_index()按索引排序
sort_values()按值排序
replace()替换值
nlargest()返回某列最大的 n 条数据
nsmallest()返回某列最小的 n 条数据

20.2 统计描述方法#

import pandas as pd
import numpy as np
df = pd.DataFrame(
{
'name': ['tom', 'tom', 'jack', 'alice', 'bob', 'allen'],
'score': [60.5, 60.5, 80, 30.6, 70, 83.5],
'age': [15, 15, 15, 20, 26, 30]
},
index=[1, 2, 3, 4, 5, 6]
)

描述性统计:

print(df.describe())

输出:

score age
count 6.000000 6.000000
mean 64.183333 20.166667
std 19.037376 6.493587
min 30.600000 15.000000
25% 60.500000 15.000000
50% 65.250000 17.500000
75% 77.500000 24.500000
max 83.500000 30.000000

describe() 自动跳过非数值列(如 name),仅对数值列做统计。

常用统计计算:

print(df['score'].sum()) # 求和
print(df.score.max()) # 最大值
print(df.age.min()) # 最小值
print(df.score.mean()) # 平均值
print(df.score.median()) # 中位数
print(df.age.mode()) # 众数
print(df.score.std()) # 标准差
print(df.score.var()) # 方差
print(df.score.quantile(0.25)) # 第25百分位数
print(df.count()) # 每列非缺失值数量

输出:

385.1
83.5
15
64.18333333333334
65.25
0 15
Name: age, dtype: int64
19.037375519400424
362.4216666666666
60.5
name 6
score 6
age 6
dtype: int64

20.3 去重与排序#

去重:

print(df.drop_duplicates()) # 去除完全重复的行
print(df.duplicated(subset=['age'])) # 判断指定列的重复情况

输出:

name score age
1 tom 60.5 15
3 jack 80.0 15
4 alice 30.6 20
5 bob 70.0 26
6 allen 83.5 30
1 False
2 True
3 True
4 False
5 False
6 False
dtype: bool

duplicated(subset=['age']) 检查 age 列的值是否重复,返回布尔 Series。

排序:

print(df.sort_index(ascending=False))
print(df.sort_values(by=['score', 'age'], ascending=[False, True]))

输出:

name score age
6 allen 83.5 30
5 bob 70.0 26
4 alice 30.6 20
3 jack 80.0 15
2 tom 60.5 15
1 tom 60.5 15
name score age
3 jack 80.0 15
6 allen 80.0 30
5 bob 70.0 26
1 tom 60.5 15
2 tom 60.5 15
4 alice 30.6 20

sort_values() 支持多列排序:先按 score 降序,再按 age 升序。

取最大/最小 n 行:

print(df.nlargest(2, columns=['score', 'age']))
print(df.nsmallest(2, columns=['score', 'age']))

输出:

name score age
6 allen 83.5 30
3 jack 80.0 15
name score age
4 alice 30.6 20
1 tom 60.5 15

20.4 其他实用方法#

print(df.isin(['jack', 20])) # 判断元素是否在集合中
print(df.isna()) # 判断是否为缺失值
print(df.value_counts()) # 统计每行出现的频次
print(df.replace(15, 30)) # 将 15 替换为 30
print(df.sample(2)) # 随机抽样 2 行

输出(结果随机):

name score age
1 False False False
2 False False False
3 True False False
4 False False True
5 False False False
6 False False False
name score age
1 False False False
...
name score age
1 tom 60.5 30
2 tom 60.5 30
3 jack 80.0 30
4 alice 30.6 20
5 bob 70.0 26
6 allen 83.5 30

20.5 本节小结#

本节完成了以下内容:

  • 掌握了 describe()、sum()、mean()、max()、min()、median()、mode()、std()、var()、quantile() 等统计方法。
  • 掌握了 drop_duplicates()、duplicated() 去重方法。
  • 掌握了 sort_index()、sort_values()、nlargest()、nsmallest() 排序与取值方法。
  • 掌握了 isin()、isna()、value_counts()、replace()、sample() 等实用方法。

下一节我们将通过 DataFrame 案例 综合练习这些方法。


数据分析

连载中

第 20 篇,共 21 篇本文属于系列

数据分析|DataFrame的常用方法
https://luq-blog.xyz/posts/2026-07-04-data-notes-20-df-methods/
作者
Luquiescene
发布于
2026-07-04
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...

最后更新于 ,距今已过 91 天

部分内容可能已过时