如何将匿名函数应用于 pandas 系列?

pandasserver side programmingprogramming更新于 2025/5/18 15:52:17

pandas 系列构造函数有一个 apply(),它接受任何应用于给定系列对象值的用户定义函数。

同样,我们可以将匿名函数应用于 pandas 系列对象。我们可以在 pandas 数据结构 DataFrame 和 Series 上使用此 apply() 方法。它执行逐元素转换并返回一个新的系列对象作为结果。

示例 1

# import pandas package
import pandas as pd
import numpy as np

# 创建 pandas 系列
s = pd.Series(np.random.randint(10,20,5))
print(s)

# 应用匿名函数
result = s.apply(lambda x: x**2)
print('Output of apply method',result)

解释

在下面的例子中,我们将 lambda 函数用作 apply() 方法的匿名函数。

最初,我们创建了一个 pandas.Series 对象"s"使用 NumPy 随机模块对 5 个整数值进行随机排序,然后我们使用带有 lambda 函数的 apply() 方法应用平方函数。

输出

0 12
1 17
2 11
3 15
4 15
dtype: int32

Output of apply method
0 144
1 289
2 121
3 225
4 225
dtype: int64

代码 s.apply(lambda x:x**2) 将计算系列元素每个值的平方。这里的 lambda 是一个匿名函数。 apply() 方法将返回一个新的系列对象,该对象显示在上述输出块中。

示例 2

# import pandas 包
import pandas as pd
import numpy as np

# 创建一个 pandas 系列
s = pd.Series(np.random.randint(10,20,5))
print(s)

# 应用匿名函数
result = s.apply(lambda x : True if x%2==0 else False)
print('Apply 方法的输出',result)

解释

让我们取另一个 pandas 系列对象并应用一个匿名函数,这里我们应用了一个 lambda 函数来识别系列对象的偶数值和奇数值“的”。

输出

0 15
1 18
2 15
3 14
4 18
dtype: int32

Output of apply method
0 False
1 True
2 False
3 True
4 True
dtype: bool

给定示例的 apply() 方法的输出与实际系列对象"s"一起显示在上面的块中。

结果系列对象具有布尔值(True 和 Fales),True 代表偶数,False 代表奇数。


相关文章