Pandas 如何将匿名函数应用于系列
pandas系列构造函数拥有一个apply()方法,它接受任何应用于给定系列对象的用户定义函数。
同样,我们可以在pandas系列对象上应用匿名函数。我们可以在pandas数据结构DataFrame和Series上使用此apply()方法。它进行逐元素的转换,并返回一个新的系列对象作为结果。
示例1
# import pandas package
import pandas as pd
import numpy as np
# create a pandas series
s = pd.Series(np.random.randint(10,20,5))
print(s)
# Applying an anonymous function
result = s.apply(lambda x: x**2)
print('Output of apply method',result)
解释
在下面的示例中,我们使用lambda函数作为匿名函数来应用apply()方法。
首先,我们使用NumPy的random模块创建了一个包含5个整数值的pandas.Series对象“s”,然后我们使用apply()方法和lambda函数应用了平方函数。
输出
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 package
import pandas as pd
import numpy as np
# create a pandas series
s = pd.Series(np.random.randint(10,20,5))
print(s)
# Applying an anonymous function
result = s.apply(lambda x : True if x%2==0 else False)
print('Output of apply method',result)
说明
让我们再次使用 pandas series 对象,并应用一个匿名函数,这里我们应用了一个 lambda 函数来识别 series 对象“s”的偶数和奇数值。
输出
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代表奇数。