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

时间:2018-05-25 00:41:18

标签: pandas

我有一堆需要在Pandas中清洁的柱子。我写了一个清洁功能。我不确定如何将相同的功能应用于许多列。以下是我正在尝试的内容:

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

但是我得到了KeyError。

1 个答案:

答案 0 :(得分:1)

使用双括号[[]],如@chrisz指出:

这是一个MVCE:

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)

输出

    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

​