Pandas 常用函数(超详细)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;演示链接: http://116.62.199.48:7070 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观
在数据处理和分析领域,Pandas 作为 Python 的核心库之一,凭借其高效、灵活的特性,已成为开发者和数据科学家的必备工具。无论是数据清洗、特征工程,还是探索性分析,Pandas 的常用函数都能显著提升工作效率。本文将系统性地介绍 Pandas 常用函数,从基础操作到高级技巧,帮助读者循序渐进地掌握关键技能。通过案例与代码示例,您将理解如何用这些函数解决实际问题,同时避免常见误区。
一、数据读取与基础操作
1.1 读取数据:read_csv
和 read_excel
Pandas 的第一个常用函数是 read_csv
,它用于快速读取 CSV 文件。通过此函数,开发者可以将数据直接转换为 DataFrame(二维表格结构)。
import pandas as pd
df = pd.read_csv("data.csv")
对于 Excel 文件,read_excel
函数同样适用,只需指定文件路径和 sheet 名称即可。
比喻:想象你正在整理一个文件柜,read_csv
就像打开抽屉,把所有文件按固定格式排列好,方便后续操作。
1.2 查看数据结构:head()
, tail()
, shape
head(n)
:显示前n
行,默认n=5
。tail(n)
:显示后n
行。shape
:返回 DataFrame 的行数和列数。
print(df.head(3))
print("数据维度:", df.shape)
二、数据选择与索引
2.1 列选择:[]
操作符和 .loc
直接通过列名索引列是最基础的操作:
column_data = df["column_name"]
selected_columns = df[["col1", "col2"]]
若需按行和列的标签(label)选择数据,loc
是更强大的工具:
subset = df.loc[0:2, "col1"]
2.2 位置索引:.iloc
iloc
通过整数位置选择数据,适用于无需依赖标签的情况:
subset = df.iloc[0:3, 0:2]
三、数据清洗与处理
3.1 处理缺失值:dropna()
和 fillna()
dropna()
:删除包含缺失值的行或列。fillna()
:用指定值填充缺失值。
cleaned_df = df.dropna()
mean_value = df["age"].mean()
df["age"].fillna(mean_value, inplace=True)
3.2 数据排序:sort_values()
和 sort_index
sort_values(by="column")
:按列值排序。sort_index()
:按索引值排序。
sorted_df = df.sort_values(by="score", ascending=False)
四、数据统计与描述
4.1 描述性统计:describe()
describe()
可快速生成数值列的统计摘要,包括均值、标准差、分位数等:
stats = df.describe()
print(stats)
4.2 分组统计:groupby()
groupby
是 Pandas 的核心功能之一,允许按某一列的值分组后进行聚合计算。例如,计算不同班级的平均成绩:
grouped_avg = df.groupby("class")["score"].mean()
比喻:groupby
就像把文件柜中的文件按分类标签整理到不同抽屉,再对每个抽屉的内容进行统计。
五、数据合并与重塑
5.1 合并数据:merge()
和 concat()
merge()
:类似 SQL 的 JOIN 操作,按指定列合并两个 DataFrame。concat()
:沿指定轴(行或列)拼接 DataFrame。
merged_df = pd.merge(df1, df2, on="id")
combined_df = pd.concat([df1, df2], axis=0)
5.2 数据重塑:pivot_table
pivot_table
可快速将长格式数据转换为宽格式,适合多维度分析:
pivot = df.pivot_table(index="category", columns="year", values="sales", aggfunc="mean")
六、进阶技巧:条件筛选与函数应用
6.1 条件筛选:布尔索引
通过布尔条件筛选数据:
filtered_df = df[(df["age"] > 18) & (df["gender"] == "male")]
6.2 自定义函数:apply()
apply()
可将自定义函数应用到 DataFrame 的行或列:
def calculate_zscore(series):
return (series - series.mean()) / series.std()
df["z_score"] = df["score"].apply(calculate_zscore)
七、性能优化与内存管理
7.1 选择性读取数据:nrows
和 usecols
通过参数限制读取数据量,减少内存占用:
df = pd.read_csv("large_data.csv", nrows=1000, usecols=["id", "date"])
7.2 数据类型转换:astype()
将高内存消耗类型(如 object
)转换为更轻量的类型:
df["category"] = df["category"].astype("category")
结论
本文系统梳理了 Pandas 常用函数 的核心知识点,从数据读取、清洗、分析到优化,覆盖了开发者日常工作中高频使用的场景。通过结合实际案例和代码示例,您应能快速掌握这些函数的逻辑与应用。
Pandas 常用函数 的精髓在于其灵活性与功能性,但学习过程中需注意以下几点:
- 善用文档:Pandas 的官方文档详细记录了每个函数的参数和用例。
- 分步调试:复杂操作建议分步执行,避免一次性处理过多逻辑。
- 性能监控:对大数据集,需关注内存占用和运行时间,适时采用优化策略。
希望本文能成为您数据处理旅程的可靠指南,未来工作中遇到具体问题时,不妨回归基础函数,逐步拆解需求,最终实现高效解决方案。