接下来我将详细讲解pandas.apply()
的作用与使用方法,供大家参考。
1. pandas.apply()
的作用
pandas.apply()
方法的作用是在数据帧或数据系列中应用一个函数,并将每个元素都处理一遍。它可以将自定义函数应用于数据中的每一行或每一列,也可以在整个数据帧或数据系列上操作。
2. pandas.apply()
的使用方法
2.1 在数据帧上使用apply()
在数据帧上使用apply()
方法可以将一个函数应用于数据中的每一行或每一列。下面是一个示例:
import pandas as pd
data = {
'name': ['Tom', 'John', 'Sam'],
'age': [20, 25, 30],
}
df = pd.DataFrame(data)
def add_year(age):
return age + 1
df['age'] = df['age'].apply(add_year)
print(df)
该示例将列age
中的每个值加1,输出结果如下:
name age
0 Tom 21
1 John 26
2 Sam 31
2.2 在数据系列上使用apply()
在数据系列上使用apply()
方法可以将一个函数应用于数据中的每个元素。下面是一个示例:
import pandas as pd
import numpy as np
data = np.array([1, 2, 3, 4, 5])
s = pd.Series(data)
def square(x):
return x * x
s = s.apply(square)
print(s)
该示例将系列s
中的每个值求平方,输出结果如下:
0 1
1 4
2 9
3 16
4 25
dtype: int64
2.3 传递额外参数
除了应用自定义函数,pandas.apply()
方法还可以传递额外的参数。下面是一个示例:
import pandas as pd
data = {
'name': ['Tom', 'John', 'Sam'],
'age': [20, 25, 30],
}
df = pd.DataFrame(data)
def add_age(df, year):
df['age'] = df['age'] + year
return df
df = df.apply(add_age, year=1, axis=1)
print(df)
该示例将每个人的年龄加1,输出结果如下:
name age
0 Tom 21
1 John 26
2 Sam 31
2.4 在数据帧上使用applymap()
pandas.applymap()
方法与pandas.apply()
方法类似,不同之处在于,它可以将一个函数应用于整个数据帧上的每个元素。下面是一个示例:
import pandas as pd
data = {
'name': ['Tom', 'John', 'Sam'],
'age': [20, 25, 30],
}
df = pd.DataFrame(data)
def add_char(x):
return 'A' + x
df = df.applymap(add_char)
print(df)
该示例将数据帧中的每个元素前面添加一个’A’,输出结果如下:
name age
0 ATom A20
1 AJohn A25
2 ASam A30
总结
pandas.apply()
方法是一个非常有用的方法,可以通过传递自定义函数来对数据帧或数据系列中的数据进行操作,同时还可以传递额外的参数。在实践中,根据具体的需求,灵活使用pandas.apply()
方法也可以大大提高数据操作的效率。