📌  相关文章
📜  如何将函数应用于 Pandas 中的多个列?(1)

📅  最后修改于: 2023-12-03 15:24:44.264000             🧑  作者: Mango

如何将函数应用于 Pandas 中的多个列?

在数据分析的实践中,我们需要对多个列进行操作和处理,比如对两列数值相加,或使用自定义函数处理两列数据后求和等。在 Pandas 中,可以使用 apply() 方法来将函数应用于多个列,在本文中,我们将学习如何使用 apply() 方法。

首先,我们需要先创建一份示例数据,代码如下:

import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
print(df)

输出:

   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

以上代码创建了一个包含 3 个列的DataFrame,并将其打印出来。

接下来,我们将学习两种将函数应用于 Pandas 多个列的方法。

方法一:使用 apply() 方法

使用 apply() 方法将函数应用于多个列时,需要使用 axis 参数来指定应用函数的方向。如果 axis=0,则表示将函数应用于每一列。如果 axis=1,则表示将函数应用于每一行。代码如下:

def add(x):
    return x['A'] + x['B']

df['D'] = df.apply(add, axis=1)
print(df)

输出:

   A  B  C  D
0  1  4  7  5
1  2  5  8  7
2  3  6  9  9

以上代码定义了一个函数 add(x),该函数通过取得输入的 DataFrame 中的两列 A 和 B 的值相加返回结果,然后将新的一列 D 插入到该 DataFrame 中。

使用 apply() 方法传递函数时,需要注意传递的参数必须为该 DataFrame 的每一行或每一列,如果参数中包含多个列,则需要加 .apply(lambda x: 函数(x[列名1], x[列名2], ...), axis=1)。

方法二:使用 applymap() 方法

使用 applymap() 方法将函数应用于多个列,该方法会将函数应用到 DataFrame 中的每一个元素。代码如下:

def multiply(x):
    return x * 2

df[['A', 'B', 'C']] = df[['A', 'B', 'C']].applymap(multiply)
print(df)

输出:

   A   B   C  D
0  2   8  14  5
1  4  10  16  7
2  6  12  18  9

以上代码定义了一个函数 multiply(x),该函数将传入参数 x 乘以 2 后返回结果。使用 applymap() 方法将该函数应用于列 A、B、C 中的所有元素并将结果保存到原来的列中。

总结

以上就是将函数应用于 Pandas 多个列的两种方法:apply() 和 applymap()。apply() 方法可以将函数应用于每一行或每一列,而 applymap() 方法会将函数应用于 DataFrame 中的每一个元素。