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

How to apply a function to multiple columns in Pandas

本问题已经有最佳答案,请猛点这里访问。

我有一堆柱子,大熊猫需要打扫。我已经写了一个函数来做那个清理。我不知道如何将同一个函数应用于多个列。以下是我的尝试:

1
df["Passengers","Revenue","Cost"].apply(convert_dash_comma_into_float)

但我有钥匙错误。


如@chrisz指出的那样,使用双括号[[]

这里有一个MVCE:

1
2
3
4
5
6
7
8
df = pd.DataFrame(np.arange(30).reshape(10,-1),columns=['A','B','C'])

def f(x):
    #Clean even numbers from columns.
    return x.mask(x%2==0,0)

df[['B','C']] = df[['B','C']].apply(f)
print(df)

产量

1
2
3
4
5
6
7
8
9
10
11
12
13
    A   B   C
0   0   1   0
1   3   0   5
2   6   7   0
3   9   0  11
4  12  13   0
5  15   0  17
6  18  19   0
7  21   0  23
8  24  25   0
9  27   0  29

?