0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

盘点66个Pandas函数合集

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-30 09:58 次阅读

今天我们重新盘点66个Pandas函数合集,包括数据预览、数值数据操作、文本数据操作、行/列操作等等,涉及“ 数据清洗 ”的方方面面。

Pandas 是基于NumPy的一种工具,该工具是为解决数据分析任务而创建的。它提供了大量能使我们快速便捷地处理数据的函数和方法。

数据预览

对于探索性数据分析来说,做数据分析前需要先看一下数据的总体概况。info()方法用来查看数据集信息describe()方法将返回描述性统计信息,这两个函数大家应该都很熟悉了。

describe方法默认只给出数值型变量的常用统计量,要想对DataFrame中的每个变量进行汇总统计,可以将其中的参数include设为all。

head()方法和tail() 方法则是分别显示数据集的前n和后n行数据。如果想要随机看N行的数据,可以使用sample()方法。

df.sample(3)

输出:

图片

如果要检查数据中各列的数据类型,可以使用.dtypes;如果想要值查看所有的列名,可以使用.columns

df.columns

输出:

Index(['日期', '销量'], dtype='object')

前面介绍的函数主要是读取数据集的数据信息,想要获得数据集的大小(长宽),可以使用.shape方法。

df.shape

输出:

(5, 2)

另外,len()可以查看某列的行数,count()则可以查看该列值的有效个数,不包含无效值(Nan)。

缺失值与重复值

Pandas清洗数据时,判断缺失值一般采用isnull()方法。此外,isnull().any()会判断哪些”列”存在缺失值,isnull().sum()用于将列中为空的个数统计出来。

df.isnull().any()

输出:

日期    False
销量    True
dtype: bool

发现“销量”这列存在缺失值后,处理办法要么删除dropna() ,要么填充fillna()

df.fillna(50)

输出:

图片

Pandas清洗数据时,判断重复值一般采用duplicated()方法。如果想要直接删除重复值,可以使用drop_duplicates() 方法。此处较为常见,不再过多演示。


数值数据操作

我们在处理数据的时候,会遇到批量替换的情况,replace()是很好的解决方法。它既支持替换全部或者某一行,也支持替换指定的某个或指定的多个数值(用字典的形式),还可以使用正则表达式替换。

df["编号"].replace(r'BA.$', value='NEW', regex=True, inplace = True)

输出:

图片

在Pandas模块中, 调⽤rank()⽅法可以实现数据排名。

df["排名"] = df.rank(method="dense").astype("int")

输出:

图片

rank()⽅法中的method参数,它有5个常⽤选项,可以帮助我们实现不同情况下的排名。

图片

clip()方法,用于对超过或者低于某些数的数值进行截断 ^[1]^ ,来保证数值在一定范围。比如每月的迟到天数一定是在0-31天之间。

df["迟到天数"] = df["迟到天数"].clip(0,31)

图片

唯一值unique()是以数组形式返回列的所有唯一值,而nunique()返回的是唯一值的个数。

df["gender"].unique()
df["gender"].nunique()

输出:

图片

在数值数据操作中,apply()函数的功能是将一个自定义函数作用于DataFrame的行或者列;applymap()函数的功能是将自定义函数作用于DataFrame的所有元素。他们通常也与匿名函数lambda一起使用。

df["数量"].apply(lambda x: x+1)

输出:

图片文本数据操作

之前我们曾经介绍过经常被人忽视的:Pandas 文本型数据处理。在对文本型的数据进行处理时,我们会大量应用字符串的函数,来实现对一列文本数据进行操作 ^[2]^ 。

函数方法用法释义
cat字符串的拼接
contains判断某个字符串是否包含给定字符
startswith/endswith判断某个字符串是否以...开头/结尾
get获取指定位置的字符串
len计算字符串长度
upper、lower英文大小写转换
pad/center在字符串的左边、右边或左右两边添加给定字符
repeat重复字符串几次
slice_replace使用给定的字符串,替换指定的位置的字符
split分割字符串,将一列扩展为多列
strip、rstrip、lstrip去除空白符、换行符
findall利用正则表达式,去字符串中匹配,返回查找结果的列表
extract、extractall接受正则表达式,抽取匹配的字符串(一定要加上括号)

举例:

df.insert(2, "姓名", 
          df["姓"].str.cat(df["名"], sep=""))

输出:

图片

df["手机号码"] = df["手机号码"].str.slice_replace(3,7,"*"*4)

输出:

图片

df["地址"].str.extract("([u4e00-u9fa5]+)")

输出:

图片

行/列操作

数据清洗时,会将带空值的行删除,此时DataFrame或Series类型的数据不再是连续的索引,可以使用reset_index()重置索引。

df.reset_index(drop=True)

输出:

图片

rename()重命名用于更改行列的标签,即行列的索引。可以传入一个字典或者一个函数。在数据预处理中,比较常用。

df.rename(columns={'mark': 'sell'}, inplace=True)

输出:

图片

行列转置,我们可以使用T属性获得转置后的DataFrame。

df.T

输出:

图片

删除行列,可以使用drop()

df.drop(columns=["mark"])

输出:

图片

数据分析师在进行数据处理时经常会遇到长宽表互转的情况,这也是一道常见的数据分析面试题。

melt()方法可以将宽表转长表,即表格型数据转为树形数据。

df.melt(id_vars="姓名", var_name="科目", value_name="成绩")

输出:

图片

pivot()方法可以将长表转宽表,即树形数据转为表格型数据。

df.pivot(index='姓名', columns='科目', values='成绩')

输出:

图片

pivot()其实就是用 set_index()创建层次化索引,再用unstack()重塑

df1.set_index(['姓名','科目']).unstack('科目')

图片

数据分组与数据透视表更是一个常见的需求,groupby()方法可以用于数据分组。

df.groupby("科目").mean()

图片

由于pivot_table()数据透视表的参数比较多,就不再使用案例来演示了,具体用法可参考下图。

图片
数据筛选

如果是筛选行列的话,通常有以下几种方法:

有时我们需要按条件选择部分列、部分行,一般常用的方法有:

操作语法返回结果
选择列df[col]Series
按索引选择行df.loc[label]Series
按数字索引选择行df.iloc[loc]Series
使用切片选择行df[:5]DataFrame
用表达式筛选行^[3]^df[bool_vec]DataFrame

除此以外,还有很多方法/函数可以用于“数据筛选”。

如果想直接筛选包含特定字符的字符串,可以使用contains()这个方法。

例如,筛选户籍地址列中包含“黑龙江”这个字符的所有行。

df[df["户籍地址"].str.contains("黑龙江")]

query()查询方法也可以用来筛选数据,比如查询“语文”成绩大于“数学”成绩的行记录。

df.query("语文 > 英语")

输出:

图片

select_dtypes()方法可用于筛选某些数据类型的变量或列。举例,我们仅选择具有数据类型'int64'的列。

df.select_dtypes("int64")

输出:

图片

isin()接受一个列表,判断该列中元素是否在列表中。

name_list = ["张三", "李四"]
df[df["姓名"].isin(name_list)]

输出:

图片
数值数据统计运算

在对数值型的数据进行统计运算时,除了有算术运算、比较预算还有各种常见的汇总统计运行函数,具体如下表所示。

函数方法用法释义
count非NaN数据项计数
sum求和
mean平均值
median中位数
mode众数
max最大值
min最小值
std标准差
var方差
quantile分位数
skew返回偏态系数
kurt返回峰态系数

举例:

df["语文"].max()

输出:

155

最后,再说一个比较常用的统计运算函数——累加cumsum()

df["累计销量"] = df["销量"].cumsum()

输出:

图片

注:cumprod()方法是指连乘,用于与连加一样,但使用频率较少。


今天我们盘点了66个Pandas函数合集,但实际还有很多函数在本文中没有介绍,包括时间序列、数据表的拼接与连接等等。此外,那些类似describe()这种大家非常熟悉的方法都省去了代码演示。如果大家有在工作生活中进行“数据清洗”非常有用的Pandas函数,也可以在评论区交流。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7006

    浏览量

    88955
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62576
收藏 人收藏

    评论

    相关推荐

    在PyODPS DataFrame自定义函数中使用pandas、scipy和scikit-learn

    的,MaxCompute 的 Python 环境只包含了 numpy 这一第三方包,用户常常问的问题是,如何在自定义函数里使用 pandas、scipy 或者 scikit-learn 这样的包含c
    发表于 05-17 19:48

    Pandas中的四种绘图函数

    数据可视化(三):Pandas中的绘图函数
    发表于 09-04 09:04

    pandas是什么?

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着
    发表于 01-12 07:53

    pandas的快速入门介绍

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们
    发表于 06-03 08:00 0次下载
    <b class='flag-5'>pandas</b>的快速入门介绍

    从Excel到Python-最常用的36Pandas函数

    本文涉及pandas最常用的36函数,通过这些函数介绍如何完成数据生成和导入、数据清洗、预处理,以及最常见的数据分类,数据筛选,分类...
    的头像 发表于 12-10 21:31 685次阅读

    Python工具pandas筛选数据的15常用技巧

    pandas是Python数据分析必备工具,它有强大的数据清洗能力,往往能用非常少的代码实现较复杂的数据处理 今天,总结了pandas筛选数据的15常用技巧,主要包括5知识点: 比
    的头像 发表于 03-30 10:44 2883次阅读
    Python工具<b class='flag-5'>pandas</b>筛选数据的15<b class='flag-5'>个</b>常用技巧

    盘点Pandas的100常用函数

    经过一段时间的整理,本期将分享我认为比较常规的100实用函数,这些函数大致可以分为六类,分别是统计汇总函数、数据清洗函数、数据筛选、绘图与
    的头像 发表于 04-01 09:52 2837次阅读
    <b class='flag-5'>盘点</b><b class='flag-5'>Pandas</b>的100<b class='flag-5'>个</b>常用<b class='flag-5'>函数</b>

    解读12 种 Numpy 和 Pandas 高效函数技巧

    本文分享给大家 12 种 Numpy 和 Pandas 函数,这些高效的函数会令数据分析更为容易、便捷。最后,读者也可以在 GitHub 项目中找到本文所用代码的 Jupyter Notebook
    的头像 发表于 06-29 17:05 1497次阅读

    NXP K66系列单片机开发板软件例程IAR8.2版本工程源码30合集

    NXP K66系列单片机开发板软件例程IAR8.2版本工程源码30合集(stc单片机)-NXP K66系列单片机开发板软件例程IAR8.2版本工程源码30
    发表于 07-22 12:25 0次下载
    NXP K<b class='flag-5'>66</b>系列单片机开发板软件例程IAR8.2版本工程源码30<b class='flag-5'>个</b><b class='flag-5'>合集</b>

    5必须知道的Pandas数据合并技巧

    concat是pandas中专门用于数据连接合并的函数,功能非常强大,支持纵向合并和横向合并,默认情况下是纵向合并,具体可以通过参数进行设置。
    的头像 发表于 04-13 10:35 2329次阅读

    Pandas 50高级、高频操作

    在数据分析和数据建模的过程中需要对数据进行清洗和整理等工作,有时需要对数据增删字段。下面为大家介绍Pandas对数据的复杂查询、数据类型转换、数据排序、数据的修改、数据迭代以及函数的使用。
    的头像 发表于 04-24 11:00 838次阅读

    超强图解Pandas,建议收藏

    Pandas是数据挖掘常见的工具,掌握使用过程中的函数是非常重要的。本文将借助可视化的过程,讲解Pandas的各种操作。
    的头像 发表于 08-29 15:15 621次阅读
    超强图解<b class='flag-5'>Pandas</b>,建议收藏

    如何使用Python和pandas库读取、写入文件

    = pd.read_excel(' data .xlsx') 此代码中,我们首先导入 pandas 库并将其重命名为 pd。使用 pd.read_excel() 函数读取 'data.xlsx' 文件并将其存储在
    的头像 发表于 09-11 17:52 1188次阅读

    pandas中合并数据的5函数

    今天借着这个机会,就为大家盘点一下pandas中合并数据的5函数。 join join是基于索引的横向拼接,如果索引一致,直接横向拼接。如果索引不一致,则会用Nan值填充。 索引一致
    的头像 发表于 10-31 11:11 755次阅读
    <b class='flag-5'>pandas</b>中合并数据的5<b class='flag-5'>个</b><b class='flag-5'>函数</b>

    Pandas函数的三接口介绍

    本文主要介绍pandas.DataFrame的三接口,即assign、eval、query,分别用于赋值、查询和执行计算。 01 assign 在数据分析处理中,赋值产生新的列是非常高频的应用场
    的头像 发表于 11-01 16:38 469次阅读
    <b class='flag-5'>Pandas</b><b class='flag-5'>函数</b>的三<b class='flag-5'>个</b>接口介绍