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 聚合数值列。

相关推荐
空影星2 小时前
GridPlayer,一个好用的多视频同步播放器
python·flask·电脑·音视频
草莓熊Lotso2 小时前
《C++ Web 自动化测试实战:常用函数全解析与场景化应用指南》
前端·c++·python·dubbo
叼菠萝2 小时前
AI 应用开发三剑客系列:LangChain 如何撑起 LLM 应用开发基石?
python·langchain
程序员小远2 小时前
软件测试之压力测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
CheungChunChiu2 小时前
AI 模型部署体系全景:从 PyTorch 到 RKNN 的嵌入式类比解析
人工智能·pytorch·python·模型
小小测试开发3 小时前
Python SQLAlchemy:告别原生 SQL,用 ORM 优雅操作数据库
数据库·python·sql·sqlalchemy
空影星3 小时前
Tablecruncher,一款轻量级CSV编辑器
python·编辑器·电脑·智能硬件
bin91533 小时前
当AI开始‘映射‘用户数据:初级Python开发者的创意‘高阶函数‘如何避免被‘化简‘?—— 老码农的函数式幽默
开发语言·人工智能·python·工具·ai工具
万粉变现经纪人4 小时前
如何解决 pip install -r requirements.txt 私有仓库认证失败 401 Unauthorized 问题
开发语言·python·scrapy·flask·beautifulsoup·pandas·pip
你才是向阳花5 小时前
如何用python来做小游戏
开发语言·python·pygame