Pandas 函数速查专业指南

Pandas 是 Python 数据分析的核心库,提供了丰富的函数用于数据处理、清洗和分析。下面按类别列出常用函数,并附专业说明。


1️⃣ DataFrame / Series 常用属性与方法

方法 / 属性 说明 示例
df.head(n) 查看前 n 行 df.head(5)
df.tail(n) 查看后 n 行 df.tail(3)
df.shape 返回行列数 (rows, columns) df.shape
df.info() 数据概况,列类型、非空数等 df.info()
df.describe() 数值列统计汇总(count, mean, std, min, max, quartile) df.describe()
df.columns 返回列名 df.columns
df.index 返回索引 df.index
df.dtypes 返回列的数据类型 df.dtypes
df.isna() / df.isnull() 判断缺失值 df.isna()
df.notna() / df.notnull() 判断非缺失值 df.notna()
df.drop(columns=[]) 删除列 df.drop(columns=["列1"])
df.dropna() 删除含缺失值的行 df.dropna()
df.fillna(value) 缺失值填充 df.fillna(0)
df.rename(columns={}) 重命名列 df.rename(columns={"旧列名":"新列名"})
df.sort_values(by="列名", ascending=True) 按列排序 df.sort_values("订单总额", ascending=False)
df.sort_index() 按索引排序 df.sort_index()
df.copy() 复制 DataFrame df2 = df.copy()

2️⃣ 数据选择与索引

方法 说明 示例
df["列名"] 取单列,返回 Series df["账户余额"]
df[["列1","列2"]] 取多列,返回 DataFrame df[["账户余额","信用评分"]]
df.loc[行标签, 列标签] 按标签取值,可切片 df.loc[0,"账户余额"]
df.iloc[行号, 列号] 按位置取值 df.iloc[0,1]
df.at[行标签, 列标签] 快速取单值 df.at[0,"账户余额"]
df.iat[行号, 列号] 快速按位置取单值 df.iat[0,1]
df.query("条件") 按表达式筛选 df.query("年龄>30 & 性别=='女'")
df[df["列"]>值] 按布尔条件筛选行 df[df["账户余额"]>20000]

3️⃣ 聚合与统计函数

方法 说明 示例
df.sum() 求和 df.sum()
df.mean() 平均值 df.mean()
df.median() 中位数 df.median()
df.std() 标准差 df.std()
df.var() 方差 df.var()
df.min() / df.max() 最小/最大值 df.min()
df.count() 非空数量 df.count()
df.value_counts() 对 Series 分组计数 df["性别"].value_counts()
df.nunique() 唯一值数量 df.nunique()
df.cumsum() 累积和 df["销售额"].cumsum()
df.cumprod() 累积乘积 df["增长率"].cumprod()
df.agg() / df.aggregate() 聚合函数,可同时多函数 df.groupby("客户编号")["订单总额"].agg(["count","sum"])

4️⃣ 分组与透视

方法 说明 示例
df.groupby("列名") 分组操作 df.groupby("性别")["账户余额"].mean()
df.pivot(index, columns, values) 数据透视表 df.pivot(index="客户编号", columns="月份", values="订单总额")
df.pivot_table(index, columns, values, aggfunc) 支持聚合的透视表 df.pivot_table(index="产品名称", values="订单总额", aggfunc=["sum","count"])
df.melt() 数据展开为长表 df.melt(id_vars=["客户编号"], value_vars=["订单总额","订单数量"])

5️⃣ 字符串操作 (.str)

方法 说明 示例
df["列"].str.lower() / .upper() 大小写转换 df["姓名"].str.upper()
df["列"].str.strip() 去掉首尾空格 df["姓名"].str.strip()
df["列"].str.contains("关键字") 判断包含 df["地址"].str.contains("北京")
df["列"].str.replace("旧","新") 替换 df["姓名"].str.replace("张","赵")
df["列"].str.split("分隔符") 拆分 df["姓名"].str.split(" ")
df["列"].str.len() 字符串长度 df["姓名"].str.len()

6️⃣ 日期与时间 (.dt) 与重采样 (resample)

方法 说明 示例
pd.to_datetime() 转为时间类型 df["日期"] = pd.to_datetime(df["日期"])
df["列"].dt.year/month/day 获取年/月/日 df["日期"].dt.year
df["列"].dt.weekday 星期(0=周一) df["日期"].dt.weekday
df["列"].dt.hour/minute/second 小时/分钟/秒 df["日期"].dt.hour
df["列"].dt.strftime() 格式化日期 df["日期"].dt.strftime("%Y-%m-%d")
df.resample("M", on="下单日期").count() 按时间频率重采样(聚合),默认月末对齐 df_ecom.resample("M", on="下单日期")["订单编号"].count()

7️⃣ 排序与排名

方法 说明 示例
df.sort_values(by) 按列排序 df.sort_values("账户余额", ascending=False)
df.sort_index() 按索引排序 df.sort_index()
df.rank() 排名 df["账户余额"].rank(ascending=False)

8️⃣ 合并与连接

方法 说明 示例
pd.concat([df1, df2], axis=0/1) 按行/列拼接 pd.concat([df1, df2], axis=0)
pd.merge(df1, df2, on="列", how="inner/left/right/outer") SQL 风格 join pd.merge(df1, df2, on="客户编号", how="left")
df.join(df2, on="列") 索引 join df.join(df2.set_index("客户编号"), on="客户编号")

9️⃣ 交叉表 (crosstab)

方法 说明 示例
pd.crosstab(index, columns) 统计两个分类变量组合频次 pd.crosstab(df_bank["性别"], df_bank["是否活跃"])
pd.crosstab(index, columns, values=..., aggfunc=...) 对交叉组合进行聚合 pd.crosstab(df_bank["性别"], df_bank["是否活跃"], values=df_bank["账户余额"], aggfunc="sum")
normalize 是否显示比例 pd.crosstab(df_bank["性别"], df_bank["是否活跃"], normalize="index")

10️⃣ 其他实用函数

方法 说明 示例
df.apply(func) 对行/列应用函数 df["余额"].apply(lambda x:x*1.1)
df.applymap(func) 对整个 DataFrame 每个元素应用函数 df.applymap(lambda x:x*2)
df.astype(type) 转换类型 df["账户余额"].astype(float)
df.duplicated() / df.drop_duplicates() 重复值检测与删除 df.drop_duplicates(subset=["订单编号"])
df.memory_usage() 内存占用 df.memory_usage()

补充说明

  1. pivot_table 可以理解为 Excel 的透视表,支持多函数聚合、多列、多 index。

  2. resample 用于时间序列聚合,默认索引对齐在周期末,可用 "MS" 对齐月初。

  3. crosstab 是统计两个分类变量组合频次的利器,也可加 aggfunc 聚合数值列。

相关推荐
卷毛的技术笔记38 分钟前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥39 分钟前
匿名函数 lambda + 高阶函数
java·python·算法
vb2008111 小时前
FastAPI APIRouter
开发语言·python
adrninistrat0r1 小时前
Java调用链MCP分析工具
java·python·ai编程
杨充1 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
meilindehuzi_a2 小时前
深入浅出数据结构:Python 字典(Dict)与集合(Set)的哈希表底层全链路追踪
数据结构·python·散列表
Lucas凉皮2 小时前
20243408 2025-2026-2 《Python程序设计》综合实践报告
python·实验报告
键盘上的猫头鹰2 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
薛定谔的猫-菜鸟程序员3 小时前
2小时智能体开发一个智能体?我用CodeArts Agent 和 AtomCode 开发了一个适老化智能体。
人工智能·python·agent
bigfootyazi4 小时前
python爬虫-基本库-urllib库(常用速查)
开发语言·爬虫·python