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

相关推荐
码界奇点7 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
Laravel技术社区8 小时前
pytesseract 中英文 识别图片文字
python
生骨大头菜9 小时前
使用python实现相似图片搜索功能,并接入springcloud
开发语言·python·spring cloud·微服务
绝不收费—免费看不了了联系我9 小时前
Fastapi的单进程响应问题 和 解决方法
开发语言·后端·python·fastapi
xqqxqxxq9 小时前
背单词软件技术笔记(V2.0扩展版)
java·笔记·python
最晚的py9 小时前
Python抓取ZLibrary元数据
爬虫·python
咖啡续命又一天9 小时前
Trae CN IDE 中 Python 开发的具体流程和配置总结
开发语言·ide·python·ai编程
IT·小灰灰11 小时前
告别“翻墙“烦恼:DMXAPI让Gemini-3-pro-thinking调用快如闪电
网络·人工智能·python·深度学习·云计算
山海青风11 小时前
语音合成 - 用 Python 合成藏语三大方言语音
开发语言·python·音视频
mikejahn11 小时前
爬取CECS网站征求意见栏目的最新信息
python