J'ai un dataframe qui peut ressembler à ceci:
A B C
foo bar foo bar
bar foo foo bar
Je veux parcourir chaque élément de chaque ligne (ou chaque élément de chaque colonne) et appliquer la fonction suivante pour obtenir le DF suivant:
def foo_bar(x):
return x.replace('foo', 'wow')
A B C
wow bar wow bar
bar wow wow bar
Existe-t-il une simple ligne qui puisse appliquer une fonction à chaque cellule?
Il s'agit d'un exemple simpliste. Il peut donc être plus simple d'exécuter cet exemple spécifique que d'appliquer une fonction, mais ce que je demande en réalité, c'est comment appliquer une fonction dans chaque cellule d'un cadre de données.
Vous pouvez utiliser applymap()
qui est concis pour votre cas.
df.applymap(foo_bar)
# A B C
#0 wow bar wow bar
#1 bar wow wow bar
Une autre option consiste à vectoriser votre fonction puis à utiliser la méthode apply
:
import numpy as np
df.apply(np.vectorize(foo_bar))
# A B C
#0 wow bar wow bar
#1 bar wow wow bar