Pandas数据处理 | apply() 函数用法指南!

简介: 本文介绍一下关于 Pandas 中 apply() 函数的几个常见用法,apply() 函数的自由度较高,可以直接对 Series 或者 DataFrame 中元素进行逐元素遍历操作,方便且高效,具有类似于 Numpy 的特性。

本文介绍一下关于 Pandas 中 apply() 函数的几个常见用法,apply() 函数的自由度较高,可以直接对 Series 或者 DataFrame 中元素进行逐元素遍历操作,方便且高效,具有类似于 Numpy 的特性。

apply() 使用时,通常放入一个 lambda 函数表达式、或一个函数作为操作运算,官方上给出的 apply() 用法:

DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds

func 代表的是传入的函数或 lambda 表达式;


axis 参数可提供的有两个,该参数默认为0/列


0 或者 index ,表示函数处理的是每一列;


1 或 columns ,表示处理的是每一行;


raw ;bool 类型,默认为 False;


False ,表示把每一行或列作为 Series 传入函数中;


True,表示接受的是 ndarray 数据类型;


apply() 最后的是经过函数处理,数据以 Series 或 DataFrame 格式返回。


下面用几个例子来介绍一下 apply() 的具体使用;


DataFrame 使用apply()


1,计算每个元素的平方根

这里为了方便,直接用到 numpy 的 sqrt 函数;

>>> df  =pd.DataFrame([[4,9]]*3,columns = ['A','B'])
>>> df
   A  B
0  4  9
1  4  9
2  4  9
>>> df.apply(np.sqrt)
     A    B
0  2.0  3.0
1  2.0  3.0
2  2.0  3.0

2,计算每一行元素的平均值

这里传入数据是以列的形式存在的,所以 axis = 0,即可以省略;

>>> df.apply(np.mean)
A    4.0
B    9.0

3,计算每一列元素的平均值

与 2 不同的是这里以行的行形式传入,要加一个参数 axis =1;

>>> df.apply(np.mean,axis = 1)
0    6.5
1    6.5
2    6.5
dtype: float64

4,添加新列C,其值分别为列A、B之和

实现这个功能,最简单的一行代码即可实现:

df['C'] = df.A +df.B


但这里要用 apply() 来实现,实现对列间操作的用法,操作步骤分为下面两步:

1,先定义一个函数实现 列A + 列B ;

2,利用apply() 添加该函数,且数据需要逐行加入,因此设置axis = 1

>>> def Add_a(x):
...   return x.A+x.B
>>> df['C'] = df.apply(Add_a,axis=1)
>>> df
   A  B   C
0  4  9  13
1  4  9  13
2  4  9  13

Series 使用apply()

Series 使用 apply() 函数与 DataFrame 相似,用法上最大区别就是加了一个列名 DataFram.类名

**1,列 A 中所有元素加 1 **


不用 apply() 的方法

df.A =df.A +1

利用 apply() 函数进行操作,这里我传入一个 lambda 函数:

>>> df.A = df.A.apply(lambda x:x+1)
>>> df
   A  B   C
0  5  9  13
1  5  9  13
2  5  9  13

*2,判断列 A 中元素是否能够被2整除,用 Yes 或 No在旁边标注 **

>>> df.A = df.A.apply(lambda x:str(x)+"\tYes" if x%2==0 else str(x)+"\tNo")
>>> df
       A  B
0  5\tNo  9
1  5\tNo  9
2  5\tNo  9

apply() 的大部分用法都是上面几点,区别是这里列的例子较简单一些,但对于基础用法理解上来说已经足够了。

以上就是本文的所有内容,最后感谢大家阅读!

相关文章
|
3月前
|
数据可视化 数据挖掘 数据处理
进阶 pandas DataFrame:挖掘高级数据处理技巧
【5月更文挑战第19天】本文介绍了Pandas DataFrame的高级使用技巧,包括数据重塑(如`pivot`和`melt`)、字符串处理(如提取和替换)、日期时间处理(如解析和时间序列操作)、合并与连接(如`merge`和`concat`),以及使用`apply()`应用自定义函数。这些技巧能提升数据处理效率,适用于复杂数据分析任务。推荐进一步学习和探索Pandas的高级功能。
|
3月前
|
数据处理 索引 Python
使用pandas的merge()和join()函数进行数据处理
使用pandas的merge()和join()函数进行数据处理
71 2
|
1月前
|
机器学习/深度学习 数据采集 大数据
驾驭大数据洪流:Pandas与NumPy在高效数据处理与机器学习中的核心作用
【7月更文挑战第13天】在大数据时代,Pandas与NumPy是Python数据分析的核心,用于处理复杂数据集。在一个电商销售数据案例中,首先使用Pandas的`read_csv`加载CSV数据,通过`head`和`describe`进行初步探索。接着,数据清洗涉及填充缺失值和删除异常数据。然后,利用`groupby`和`aggregate`分析销售趋势,并用Matplotlib可视化结果。在机器学习预处理阶段,借助NumPy进行数组操作,如特征缩放。Pandas的数据操作便捷性与NumPy的数值计算效率,共同助力高效的数据分析和建模。
44 3
|
1月前
|
机器学习/深度学习 数据采集 数据处理
重构数据处理流程:Pandas与NumPy高级特性在机器学习前的优化
【7月更文挑战第14天】在数据科学中,Pandas和NumPy是数据处理的关键,用于清洗、转换和计算。用`pip install pandas numpy`安装后,Pandas的`read_csv`读取数据,`fillna`处理缺失值,`drop`删除列。Pandas的`apply`、`groupby`和`merge`执行复杂转换。NumPy加速数值计算,如`square`进行向量化操作,`dot`做矩阵乘法。结合两者优化数据预处理,提升模型训练效率和效果。
28 1
|
15天前
|
索引 Python
【Pandas】Pandas Dataframe 常用用法
Pandas DataFrame的常用操作示例,包括筛选数据、索引操作、合并DataFrame、设置和排序索引、文本处理、列重命名、处理缺失值、排序以及删除满足特定条件的行等技巧。
23 0
|
1月前
|
数据采集 数据挖掘 数据格式
Pandas的用法
【7月更文挑战第9天】Pandas的用法
19 3
|
1月前
|
数据采集 机器学习/深度学习 数据处理
从基础到卓越:Pandas与NumPy在复杂数据处理中的实战策略
【7月更文挑战第14天】Pandas与NumPy在数据科学中的核心应用:**加载数据(如`read_csv`)、探索(`head()`, `info()`, `describe()`)、数据清洗(`fillna`, `dropna`, `replace`, `apply`)、数值计算(借助NumPy的`ndarray`)、分组聚合(`groupby`与聚合函数)、窗口函数(如`rolling`)和数据筛选排序(布尔索引,`query`,`sort_values`)。通过这些工具,实现从数据预处理到复杂分析的高效处理。
21 0
|
1月前
|
存储 数据可视化 数据处理
`geopandas`是一个开源项目,它为Python提供了地理空间数据处理的能力。它基于`pandas`库,并扩展了其对地理空间数据(如点、线、多边形等)的支持。`GeoDataFrame`是`geopandas`中的核心数据结构,它类似于`pandas`的`DataFrame`,但包含了一个额外的地理列(通常是`geometry`列),用于存储地理空间数据。
`geopandas`是一个开源项目,它为Python提供了地理空间数据处理的能力。它基于`pandas`库,并扩展了其对地理空间数据(如点、线、多边形等)的支持。`GeoDataFrame`是`geopandas`中的核心数据结构,它类似于`pandas`的`DataFrame`,但包含了一个额外的地理列(通常是`geometry`列),用于存储地理空间数据。
|
3月前
|
数据挖掘 数据处理 Python
【Python DataFrame 专栏】深入探索 pandas DataFrame:高级数据处理技巧
【5月更文挑战第19天】在 Python 数据分析中,pandas DataFrame 是核心工具。本文介绍了几个高级技巧:1) 横向合并 DataFrame;2) 数据分组与聚合;3) 处理缺失值;4) 数据重塑;5) 条件筛选;6) 使用函数处理数据。掌握这些技巧能提升数据处理效率和分析深度,助你更好地发掘数据价值。
27 1
【Python DataFrame 专栏】深入探索 pandas DataFrame:高级数据处理技巧
|
2月前
|
存储 数据挖掘 数据处理
19. Python 数据处理之 Pandas
19. Python 数据处理之 Pandas
39 1