将函数应用于DataFrame中的每个单元格

elj*_*o67 55 python apply dataframe pandas

我有一个可能如下所示的数据框:

A        B        C
foo      bar      foo bar
bar foo  foo      bar
Run Code Online (Sandbox Code Playgroud)

我想查看每行的每个元素(或每列的每个元素)并应用以下函数来获取后续DF:

def foo_bar(x):
    return x.replace('foo', 'wow')

A        B        C
wow      bar      wow bar
bar wow  wow      bar
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的单行程可以为每个单元格应用一个函数?

这是一个简单的示例,因此除了应用函数之外,可能有更简单的方法来执行此特定示例,但我真正要问的是如何在数据帧中的每个单元格中应用函数.

Psi*_*dom 88

你可以使用applymap()哪种方法简洁你的情况.

df.applymap(foo_bar)

#     A       B       C
#0  wow     bar wow bar
#1  bar wow wow     bar
Run Code Online (Sandbox Code Playgroud)

另一种选择是向量化你的函数,然后使用apply方法:

import numpy as np
df.apply(np.vectorize(foo_bar))
#     A       B       C
#0  wow     bar wow bar
#1  bar wow wow     bar
Run Code Online (Sandbox Code Playgroud)

  • @eljusticiero67 您可以使用 `df.applymap(iseven)`,但请注意,对于较大的 DataFrame,它会变得非常慢,因此只要有机会,请使用矢量化方法。 (2认同)