Я изменяю фрейм данных внутри функции, но не хочу, чтобы он менял глобальную переменную.
Я использую два разных способа изменить мой фрейм данных, и они по-разному влияют на мою глобальную переменную.Первый метод добавления нового столбца путем назначения несуществующего столбца изменяет глобальный фрейм данных.При конкатенации нового столбца глобальный фрейм данных остается неизменным.
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['a', 'b', 'c'])
def mutation(data):
data['d'] = [1, 2, 3]
mutation(df)
print(df)
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['a', 'b', 'c'])
def mutation(data):
data = pd.concat([data,pd.DataFrame([1,2,3], columns=['d'])], axis =1)
mutation(df)
print(df)
Я ожидаю, что когда я печатаю df после вызова функции, я вижу столбцы a, b и c.Но первый метод также показывает столбец d.