如何将匿名函数应用于 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 代表奇数。

