一文详解Python Pandas中67个最常用的数据处理函数

 更新时间:2025年12月22日 08:47:31   作者:小庄-Python办公  
Pandas 是 Python 中最强大的数据处理库之一,无论是数据分析、清洗还是可视化,都离不开它,本文整理了 67 个最常用的 Pandas 函数,建议收藏,随时查阅

Pandas 是 Python 中最强大的数据处理库之一,无论是数据分析、清洗还是可视化,都离不开它。本文整理了 67 个最常用的 Pandas 函数,涵盖了从数据导入、查看、清洗、选择、排序、聚合到合并的全过程。建议收藏,随时查阅!

1. 创建与导入数据 (Creating & Loading Data)

数据分析的第一步通常是将数据加载到 DataFrame 中。

import pandas as pd

# 自己创建数据框,用于练习
pd.DataFrame() 

# 从 CSV 文件导入数据
pd.read_csv('filename.csv') 

# 从限定分隔符的文本文件导入数据
pd.read_table('filename.txt') 

# 从 Excel 文件导入数据
pd.read_excel('filename.xlsx') 

# 从 SQL 表/库导入数据
pd.read_sql(query, connection_object) 

# 从 JSON 格式的字符串导入数据
pd.read_json(json_string) 

# 解析 URL、字符串或者 HTML 文件,抽取其中的 tables 表格
pd.read_html(url) 

2. 导出数据 (Exporting Data)

处理完数据后,我们通常需要将其保存为各种格式。

# 导出数据到 CSV 文件
df.to_csv('filename.csv') 

# 导出数据到 Excel 文件
df.to_excel('filename.xlsx') 

# 导出数据到 SQL 表
df.to_sql(table_name, connection_object) 

# 以 Json 格式导出数据到文本文件
df.to_json('filename.json') 

# 将多个数据帧写入同一个工作簿的多个 sheet (工作表)
writer = pd.ExcelWriter('test.xlsx', index=False) 
df1.to_excel(writer, sheet_name='单位') 
writer.save() # 注意:在较新版本 Pandas 中,推荐使用 with pd.ExcelWriter(...) as writer: 语法

3. 查看与检查数据 (Inspecting Data)

在进行复杂操作前,先了解数据的基本结构和概况。

# 查看 DataFrame 对象的前 n 行
df.head(n) 

# 查看 DataFrame 对象的最后 n 行
df.tail(n) 

# 查看行数和列数
df.shape 

# 查看索引、数据类型和内存信息
df.info() 

# 查看字段(首行)名称
df.columns 

# 查看数值型列的汇总统计
df.describe() 

# 查看 Series 对象的唯一值和计数
s.value_counts(dropna=False) 

# 查看 DataFrame 对象中每一列的唯一值和计数
df.apply(pd.Series.value_counts) 

# 查看是否有缺失值
df.isnull().any() 

# 查看 column_name 字段数据重复的数据信息
df[df['column_name'].duplicated()] 

# 查看 column_name 字段数据重复的个数
df[df['column_name'].duplicated()].count() 

4. 数据选择与索引 (Selecting & Indexing)

灵活地选取我们需要的数据子集。

# 根据列名,并以 Series 的形式返回列
df['col'] 

# 以 DataFrame 形式返回多列
df[['col1', 'col2']] 

# 按位置选取数据 (Series)
s.iloc[0] 

# 按索引选取数据 (Series)
s.loc['index_one'] 

# 返回第一行
df.iloc[0, :] 

# 返回第一列的第一个元素
df.iloc[0, 0] 

# 返回第一行(索引为默认的数字时,用法同 df.iloc),但需要注意的是 loc 是按索引, iloc 参数只接受数字参数
df.loc[0, :] 

# 【已弃用】返回字段为 col1 和 col2 的前 5 条数据
# 注意:.ix 在新版 Pandas 中已被移除,请使用 .loc 或 .iloc
# df.ix[[:5], ["col1", "col2"]] 

# 选择索引名称为 5,字段名称为 col1 的数据
df.at[5, "col1"] 

# 选择索引排序为 5,字段排序为 0 的数据
df.iat[5, 0] 

5. 数据清洗与转换 (Cleaning & Transforming)

数据清洗是数据分析中最耗时的部分,掌握这些函数能事半功倍。

# 重命名列名(需要将所有列名列出,否则会报错)
df.columns = ['a', 'b', 'c'] 

# 检查 DataFrame 对象中的空值,并返回一个 Boolean 数组
pd.isnull(df) 

# 检查 DataFrame 对象中的非空值,并返回一个 Boolean 数组
pd.notnull(df) 

# 删除所有包含空值的行
df.dropna() 

# 删除所有包含空值的列
df.dropna(axis=1) 

# 删除所有小于 n 个非空值的行
df.dropna(axis=1, thresh=n) 

# 用 x 替换 DataFrame 对象中所有的空值
df.fillna(value=x) 

# 指定列填充缺失值
df['column_name'].fillna(x) 

# 将 Series 中的数据类型更改为 float 类型
s.astype(float) 

# 用 ‘one' 代替所有等于 1 的值
s.replace(1, 'one') 

# 用 'one' 代替 1,用 'three' 代替 3
s.replace([1, 3], ['one', 'three']) 

# 批量更改列名
df.rename(columns=lambda x: x + 1) 

# 选择性更改列名
df.rename(columns={'old_name': 'new_name'}) 

# 将某个字段设为索引,可接受列表参数,即设置多个索引
df.set_index('column_one') 

# 将索引设置为 col1 字段,并将索引新设置为 0, 1, 2...
df.reset_index() # 原文为 df.reset_index("col1"),通常直接调用或传 drop=True

# 批量重命名索引
df.rename(index=lambda x: x + 1) 

6. 排序 (Sorting)

让数据有序排列,方便观察趋势。

# 对前 5 条数据进行索引排序
df.sort_index().loc[:5] 

# 按照列 col1 排序数据,默认升序排列
df.sort_values('col1') 

# 按照列 col1 降序排列数据
df.sort_values('col2', ascending=False) 

# 先按列 col1 升序排列,后按 col2 降序排列数据
df.sort_values(['col1', 'col2'], ascending=[True, False]) 

7. 分组与聚合 (Grouping & Aggregation)

数据透 视和统计分析的核心功能。

# 返回一个按列 col 进行分组的 Groupby 对象
df.groupby('col') 

# 返回一个按多列进行分组的 Groupby 对象
df.groupby(['col1', 'col2']) 

# 返回按列 col1 进行分组后,列 col2 的均值
df.groupby('col1')['col2'].agg('mean') 
# agg 可以接受列表参数,如 agg([len, np.mean])

# 创建一个按列 col1 进行分组,计算 col2 的最大值和 col3 的最大值、最小值的数据透 视表
df.pivot_table(index='col1', values=['col2', 'col3'], aggfunc={'col2': max, 'col3': [max, min]}) 

# 返回按列 col1 分组的所有列的均值
df.groupby('col1').agg(np.mean) 

# 对特定列聚合
df.groupby('col1')['col2'].agg(['min', 'max']) 

# 对 DataFrame 中的每一列应用函数 np.mean
data.apply(np.mean) 

# 对 DataFrame 中的每一行应用函数 np.max
data.apply(np.max, axis=1) 

# 通常与 groupby 连用,避免索引更改(返回与原表长度一致的序列)
df.groupby('col1')['col2'].transform("sum") 

8. 合并与连接 (Merging & Joining)

将多个数据表整合成一张大表。

# 【已弃用】将 df2 中的行添加到 df1 的尾部
# 注意:.append() 在 Pandas 2.0+ 中已被移除,请使用 pd.concat()
# df1.append(df2) 
pd.concat([df1, df2]) # 推荐做法

# 将 df2 中的列添加到 df1 的尾部,值为空的对应行与对应列都不要
df.concat([df1, df2], axis=1, join='inner') 

# 对 df1 的列和 df2 的列执行 SQL 形式的 join
# 默认按照索引来进行合并,如果 df1 和 df2 有共同字段时,会报错
# 可通过设置 lsuffix, rsuffix 来进行解决
# 如果需要按照共同列进行合并,就要用到 set_index(col1)
df1.join(df2.set_index('col1'), on='col1', how='inner') 

# 对 df1 和 df2 合并,按照 col1,方式为 outer
pd.merge(df1, df2, on='col1', how='outer') 

# 与 df1.join(df2, how='outer') 效果相同
pd.merge(df1, df2, left_index=True, right_index=True, how='outer') 

9.总结

这 67 个函数涵盖了 Pandas 使用场景的 80% 以上。熟练掌握它们,你的数据处理效率将得到质的飞跃!

Tips:

  • 遇到报错时,先检查数据类型 (df.info()) 和缺失值 (df.isnull())。
  • 尽量使用向量化操作(如 apply, map, 直接运算),避免使用 for 循环遍历 DataFrame。
  • 注意 Pandas 版本更新,部分旧函数(如 ix, append)已被新函数替代。

到此这篇关于一文详解Python Pandas中67个最常用的数据处理函数的文章就介绍到这了,更多相关Python Pandas函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python无损音乐搜索引擎实现代码

    Python无损音乐搜索引擎实现代码

    这篇文章主要介绍了Python无损音乐搜索引擎的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Flask之闪现flash原理及使用

    Flask之闪现flash原理及使用

    Flask中的闪现是一种在请求之间传递消息的机制,本文就来介绍一下Flask之闪现flash原理及使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Python中断言Assertion的一些改进方案

    Python中断言Assertion的一些改进方案

    python中的断言Assertion使用起来很方便,但是也不尽如人意的地方,所以这篇文章通过几个方面对Python中的断言进行了改进,感兴趣的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • Python中的sorted函数使用解析

    Python中的sorted函数使用解析

    这篇文章主要介绍了Python中的sorted函数使用解析,sorted()函数可以对可迭代对象进行排序,并且可以人为指定排序的依据以及方式,本文提供了解决与部分实现代码,需要的朋友可以参考下
    2023-10-10
  • pytest参数化:@pytest.mark.parametrize详解

    pytest参数化:@pytest.mark.parametrize详解

    pytest.mark.parametrize装饰器能够对测试函数进行参数化处理,使得一个测试函数可以用多组数据执行多次,这有助于检查不同输入下的期望输出是否匹配,提高测试的效率和覆盖率,装饰器可以应用于函数、模块或类,支持多个装饰器组合使用,增强测试的灵活性和综合性
    2024-10-10
  • 对pandas将dataframe中某列按照条件赋值的实例讲解

    对pandas将dataframe中某列按照条件赋值的实例讲解

    今天小编就为大家分享一篇对pandas将dataframe中某列按照条件赋值的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • opencv函数threshold、adaptiveThreshold、Otsu二值化的实现

    opencv函数threshold、adaptiveThreshold、Otsu二值化的实现

    这篇文章主要介绍了opencv函数threshold、adaptiveThreshold、Otsu二值化的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • flask的orm框架SQLAlchemy查询实现解析

    flask的orm框架SQLAlchemy查询实现解析

    这篇文章主要介绍了flask的orm框架SQLAlchemy查询实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python异步IO的项目实践

    python异步IO的项目实践

    本文主要介绍了python异步IO的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • python opencv将图片转为灰度图的方法示例

    python opencv将图片转为灰度图的方法示例

    这篇文章主要介绍了python opencv将图片转为灰度图的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论