Я заметил что-то странное в поведении моего кода при использовании панд данных в фреймах и списках. Я не знаю, коррелированы ли они или проблема возникает из-за моего понимания. Буду признателен, если кто-нибудь сможет объяснить причину. Мой код похож на следующий пример:
list_of_df=[]
for i in range(0,5):
df=a_function(data)
list_of_df.append(df)
a_function
принимает начальный dataFrame с именем «data», изменяет его и возвращает. Это глупый пример, но в основном он показывает операции, которые я делаю:
def a_function(data):
data[new_column]=1
data.loc[:,existing_column]=0
return data
Я ожидаю, что в итоге list_of_df будет списком различных фреймов данных, однако в итоге все фреймы данных будут одинаковыми и равными тому, который был добавлен последним.
Когда я использовал следующий обходной путь, код работает должным образом:
list_of_df=[]
for i in range(0,5):
df=data.copy()
df=a_function(df)
list_of_df.append(df)
Но я не уверен почему. Спасибо за вашу помощь!
edit: больше информации о том, что a_function делает с фреймом данных