Применить функцию к каждой ячейке в DataFrame
У меня есть dataframe, который может выглядеть так:
A B C
foo bar foo bar
bar foo foo bar
Я хочу просмотреть каждый элемент каждой строки (или каждый элемент каждого столбца) и применить следующую функцию для получения следующего DF:
def foo_bar(x):
return x.replace('foo', 'wow')
A B C
wow bar wow bar
bar wow wow bar
Есть ли простой однострочный вкладыш, который может применять функцию к каждой ячейке?
Это упрощенный пример, так что может быть более простой способ выполнить этот конкретный пример, кроме применения функции, но то, о чем я действительно спрашиваю, - это как применить функцию в каждой ячейке в фреймворке данных.
Ответы
Ответ 1
Вы можете использовать applymap()
который является кратким для вашего дела.
df.applymap(foo_bar)
# A B C
#0 wow bar wow bar
#1 bar wow wow bar
Другим вариантом является векторизация вашей функции, а затем использование метода apply
:
import numpy as np
df.apply(np.vectorize(foo_bar))
# A B C
#0 wow bar wow bar
#1 bar wow wow bar