Pandas 常用函数(手把手讲解)

Pandas 常用函数:数据处理的得力助手

在数据分析的世界里,Pandas 是 Python 生态中不可或缺的工具。它不仅让数据处理变得高效,还极大降低了学习门槛。无论是清洗混乱的数据、进行统计分析,还是生成可视化图表,Pandas 都能轻松胜任。对于初学者来说,掌握一些核心的 Pandas 常用函数,就像学会了驾驶汽车的基本操作——踩油门、打方向盘、看后视镜,就能在数据之路上畅行无阻。

今天,我们就来系统梳理一批高频使用的 Pandas 常用函数,结合真实案例,带你一步步从“懵懂”走向“精通”。无论你是刚接触数据处理的新手,还是想巩固基础的中级开发者,这篇文章都能为你提供实用指导。


读取与查看数据:打开数据之门

在开始任何分析之前,第一步是把数据“请”进程序里。Pandas 提供了多种读取数据的函数,最常用的是 read_csv(),它能轻松加载 CSV 文件。

import pandas as pd

df = pd.read_csv('sales_data.csv')

print(df.head())

注释:read_csv() 是读取结构化数据的主力函数。head() 显示前 5 行,帮助你快速了解数据结构。
注意:文件路径要正确,CSV 文件需包含表头(列名),否则可能出错。

如果你的数据是 Excel 格式,用 read_excel() 也很方便:

df = pd.read_excel('sales_data.xlsx', sheet_name='Sheet1')
print(df.head())

注释:read_excel() 支持多 sheet,通过 sheet_name 指定读取哪个工作表。
提示:使用前需安装 openpyxl 库(pip install openpyxl)。

查看数据的基本信息,用 info()describe()

df.info()

df.describe()

注释:info() 帮你发现缺失值(NaN)和类型错误,describe() 提供数值列的统计摘要。
比喻:info() 像是体检报告,告诉你身体各部分是否健康;describe() 则是各项指标的平均值和波动范围。


数据清洗:让数据“干净”起来

真实数据往往充满噪音:缺失值、重复记录、格式混乱……这些都会影响分析结果。Pandas 提供了强大的清洗工具。

处理缺失值

print(df.isnull().sum())

df_clean = df.dropna()

df['sales'].fillna(df['sales'].mean(), inplace=True)

df['region'].fillna(method='ffill', inplace=True)

注释:isnull().sum() 统计每列缺失值总数,是诊断数据质量的第一步。
dropna() 会删行,适合缺失率极低的情况;fillna() 更灵活,可选择均值、中位数、前向填充等策略。
比喻:缺失值像数据中的“黑洞”,不处理会让后续分析“失真”。

去重与标准化

df.drop_duplicates(inplace=True)

df.columns = df.columns.str.strip().str.lower()

注释:drop_duplicates() 会删除完全相同的行,inplace=True 表示直接修改原数据。
str.strip() 去除前后空格,str.lower() 统一为小写,避免因大小写差异导致的错误。


数据筛选与条件查询:精准定位

在庞大的数据集中找到“你要的那部分”,是分析的核心。Pandas 的条件筛选功能非常强大。

high_sales = df[df['sales'] > 1000]

filtered_df = df[(df['sales'] > 1000) & (df['region'] == '华东')]

filtered_df = df.query('sales > 1000 and region == "华东"')

注释:& 表示“与”,| 表示“或”,必须用括号包裹每个条件。
query() 方法使用字符串表达式,可读性更强,特别适合复杂条件。
比喻:筛选就像在图书馆找书,你得用“作者+书名”精准定位,而不是翻遍所有书架。


数据聚合与分组统计:从个体到整体

当你想了解“不同区域的平均销售额”时,分组聚合就派上用场了。groupby() 是 Pandas 中最核心的函数之一。

grouped = df.groupby('region')['sales'].mean()

summary = df.groupby('region').agg({
    'sales': ['mean', 'max', 'count'],
    'profit': 'sum'
})

summary.columns = ['avg_sales', 'max_sales', 'order_count', 'total_profit']

注释:groupby() 将数据按指定列分组,agg() 支持对不同列应用不同函数。
columns 重命名后,输出更易读。
比喻:分组就像把学生按班级分组,再计算每个班的平均分,而不是总平均。


数据重塑与合并:连接与变形

现实中的数据常分散在多个表中。Pandas 提供了 merge()concat() 来实现数据连接与拼接。

df1 = pd.read_csv('products.csv')
df2 = pd.read_csv('orders.csv')
merged_df = pd.merge(df1, df2, on='product_id', how='inner')

df_concat = pd.concat([df1, df2], axis=1)

df_concat = pd.concat([df1, df2], axis=0)

注释:merge() 类似 SQL 的 JOIN,how='inner' 只保留两个表都有的键。
concat() 支持 axis=0(纵向)和 axis=1(横向),灵活应对不同场景。
比喻:merge() 像是拼图,需要匹配相同的边;concat() 像是把两张纸贴在一起,不关心内容是否匹配。


数据导出与保存:让成果落地

分析完成后,把结果导出为文件,是工作闭环的关键。

df.to_csv('cleaned_sales.csv', index=False)

df.to_excel('cleaned_sales.xlsx', index=False)

df.to_json('sales.json', orient='records')

注释:index=False 避免导出时多出一列索引。
orient='records' 生成 JSON 数组格式,适合 API 传输。
比喻:导出就像把分析报告打印出来,交给领导审阅。


实战案例:从零开始分析销售数据

假设你有一份销售数据,包含产品、区域、销售额、利润等字段。我们可以用 Pandas 常用函数 完成以下任务:

  1. 读取数据
  2. 清洗缺失值
  3. 筛选高价值客户
  4. 按区域分组统计
  5. 导出分析结果
df = pd.read_csv('sales_data.csv')

df.drop_duplicates(inplace=True)
df['sales'].fillna(df['sales'].mean(), inplace=True)

high_value = df[df['sales'] > 1500]

region_stats = high_value.groupby('region')['sales'].agg(['mean', 'sum'])

region_stats.to_csv('region_analysis.csv')

注释:这个流程展示了 Pandas 常用函数 的组合使用威力。
每一步都清晰、可复现,是真实项目中的标准操作。


总结:掌握核心,事半功倍

Pandas 的魅力在于它的简洁与强大。通过熟练掌握这些 Pandas 常用函数,你可以高效完成数据清洗、分析、聚合与导出,大幅提升工作效率。记住,不要试图一次性记住所有函数,而是从实际需求出发,逐步积累经验。

建议你动手实践:找一份真实 CSV 数据,尝试用本文介绍的函数完成一次完整分析。编程学习的本质是“做中学”,只有写过代码,才能真正理解。

数据的世界广阔无垠,而 Pandas 就是你探索的船。愿你在这条路上,越走越远,越走越稳。