Пересмотренный вопрос : Как передать фрейм данных pandas в функцию, а затем работать с этим фреймом данных без изменения исходной / глобальной версии.
Ответ :Похоже, что это зависит от типа действий, которые вы выполняете, и поэтому, по моему мнению, невозможно без риска что-то изменить.См. this и this
. Я опубликую, как я считаю, правильную обработку этой ситуации ниже, как только я ее подтвердлю.
Оригинальный вопрос:
Это то, что я ожидал, задавали раньше, но для моего исследования, кажется, я получаю результаты, которые противоречат соглашению.
Вот мой код:
xTest = pd.DataFrame({'A' : ['Test']})
def MyFunction():
_xTest=xTest
_xTest['yPred'] = 1
return _xTest
res=MyFunction()
xTest.head()
После запуска xTest.head () показывает, что к нему добавлен столбец «yPred».После прочтения области видимости Python, такой как URL-адрес ниже, а также где-то еще, я уверен, что этого не должно происходить?
Подход с использованием переменной области Python