详解pandas.apply()(应用函数)函数使用方法

  • Post category:Python

接下来我将详细讲解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()方法也可以大大提高数据操作的效率。