Я работаю в фоновом режиме 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()
в качестве первой строки кода ... но действительно ли это идеально?Есть ли лучший способ обойти это?Я думал, что это действительно увеличит объем данных в памяти при работе с большими наборами данных?
Спасибо!