Pandas 常用函数(超详细)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观

在数据处理和分析领域,Pandas 作为 Python 的核心库之一,凭借其高效、灵活的特性,已成为开发者和数据科学家的必备工具。无论是数据清洗、特征工程,还是探索性分析,Pandas 的常用函数都能显著提升工作效率。本文将系统性地介绍 Pandas 常用函数,从基础操作到高级技巧,帮助读者循序渐进地掌握关键技能。通过案例与代码示例,您将理解如何用这些函数解决实际问题,同时避免常见误区。


一、数据读取与基础操作

1.1 读取数据:read_csvread_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 选择性读取数据:nrowsusecols

通过参数限制读取数据量,减少内存占用:

df = pd.read_csv("large_data.csv", nrows=1000, usecols=["id", "date"])  

7.2 数据类型转换:astype()

将高内存消耗类型(如 object)转换为更轻量的类型:

df["category"] = df["category"].astype("category")  

结论

本文系统梳理了 Pandas 常用函数 的核心知识点,从数据读取、清洗、分析到优化,覆盖了开发者日常工作中高频使用的场景。通过结合实际案例和代码示例,您应能快速掌握这些函数的逻辑与应用。

Pandas 常用函数 的精髓在于其灵活性与功能性,但学习过程中需注意以下几点:

  1. 善用文档:Pandas 的官方文档详细记录了每个函数的参数和用例。
  2. 分步调试:复杂操作建议分步执行,避免一次性处理过多逻辑。
  3. 性能监控:对大数据集,需关注内存占用和运行时间,适时采用优化策略。

希望本文能成为您数据处理旅程的可靠指南,未来工作中遇到具体问题时,不妨回归基础函数,逐步拆解需求,最终实现高效解决方案。

最新发布