У меня есть dataframe, df
и определите функцию, которая будет применяться ко всему кадру данных, используя applymap
.pandas applymap внутри функции без копии
def f(x):
return x*2
def master(df):
return df.applymap(f)
if __name__ == "__main__":
d = {'a':1, 'b':2}
df = pd.DataFrame(d.items())
df_2 = master(df)
Есть ли способ использовать applymap
на df
внутри функции master
без того, чтобы сделать копию?
I'm думать что-то на линии
def f(x):
return x*2
def master(df):
df.applymap(f)
if __name__ == "__main__":
d = {'a':1, 'b':2}
df = pd.DataFrame(d.items())
master(df)
и на основной ФР изменился бы.
EDIT f
функция является более сложной, что это один, конечно же, и я хочу, чтобы применить последовательность функций для преобразования кадра данных. Есть в основном синтаксические анализаторы для нормализации, преобразования в unicode, удаления символов, разделения на компоненты и т. Д., Поэтому до сих пор я не вижу способа сделать это без applymap
.
Не можете ли вы просто вернуть df.applymap (f) 'непосредственно в' master'? – EdChum
Что значит «без копирования»? Вы меняете значения dataframe (это 'x * 2', которые сделают копию) – joris
Я думаю о возможности изменения df, не возвращая его на master. – Ivan