Проблема:
Я использую функцию, которая принимает (глобальную) переменную в качестве входных данных, затем выполняет операции с этой переменной (локально), а затем возвращает ту же самую переменную. Я хочу, чтобы переменная изменялась только локально, но вместо этого моя функция также изменяет глобальную переменную.
Код для воспроизведения:
data = {'A' : [1,2,3],
'B' : [4,5,6],
'C' : [7,8,9]}
df = pd.DataFrame(data)
def func(df):
df['D'] = df['A'] * df['B'] / df['C']
return df
func(df) # running function, without assigning it to original variable
print(df)
Возвращает:
Запуск кода показывает, что исходный кадр данных был изменен и был добавлен столбец.
A B C D
0 1 4 7 12
1 2 5 8 15
2 3 6 9 18
Ожидаемое поведение:
Мое намерение состоит в том, чтобы запустить функцию без добавления столбца в глобальную переменную, только добавить его локально в функцию.
A B C
0 1 4 7
1 2 5 8
2 3 6 9
Настройка:
- Python 3.7
- Pandas 0.25.3
- Windows 10