Понимание локальных и глобальных переменных и создание функций - PullRequest
0 голосов
/ 25 сентября 2019

Я работаю в фоновом режиме R. Я не сталкивался с этой проблемой.

Обычно в прошлом я создавал функции, которые воздействуют на информационный кадр и возвращают некоторую измененную версию информационного кадра.Например:

df=pd.DataFrame({"a":[1,2,3,4,5], "b":[6,7,8,9,10]})

def multiply_function(dataset):
    dataset['output']=dataset.iloc[:,1] * dataset.iloc[:,0]
    return(dataset)

new_df=multiply_function(df)
new_df # looks good!
df # I would expect that df stays the same and isn't updated with the new column

Я пытаюсь преобразовать большое количество функций или кода с одного языка на другой.Я бы хотел избежать возникновения этой проблемы, чтобы df НЕ обновлялся глобально из-за того, что происходит внутри функции.

Это особенно важно, когда я перезапускаю код илиизменение кода, потому что фрейм данных может быть недопустимым для запуска через функцию дважды.

Я видел использование

dataset = dataset.copy()

в качестве первой строки кода ... но действительно ли это идеально?Есть ли лучший способ обойти это?Я думал, что это действительно увеличит объем данных в памяти при работе с большими наборами данных?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...