📅  最后修改于: 2023-12-03 15:24:44.264000             🧑  作者: Mango
在数据分析的实践中,我们需要对多个列进行操作和处理,比如对两列数值相加,或使用自定义函数处理两列数据后求和等。在 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() 方法将函数应用于多个列时,需要使用 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() 方法将函数应用于多个列,该方法会将函数应用到 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 中的每一个元素。