Скопируйте данные в ссылку — копирование или глубокое копирование не работаютPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Скопируйте данные в ссылку — копирование или глубокое копирование не работают

Сообщение Anonymous »

Функция получает в качестве аргумента три кадра данных. В зависимости от того, пуст он или нет, он должен скопировать или объединить данные с внутренней переменной/фреймом данных.

Код: Выделить всё

    def updateMaster(self, NewLines:pd.DataFrame, Updated:pd.DataFrame, Removed:pd.DataFrame) -> bool:

self.__New = self._update_dataframe(self.__New, NewLines)
self.__Updated = self._update_dataframe(self.__Updated, Updated)
self.__Removed = self._update_dataframe(self.__Removed, Removed)

return True

def _update_dataframe(self, dest:pd.DataFrame, source:pd.DataFrame):
try:
if "somecolumn" not in source.columns:
raise ValueError("'somecolumn' as primary key is not present in data")
#add other checks

except ValueError as e:
print(f"{e}")
return False

else:
if dest.empty:
dest = source.copy()
else:
dest = dest.merge(source, how="inner", on="somecolumn")
ни в коем случае self.__New не будет содержать данные.

Код: Выделить всё

dest is self._New  # -> True
Итак, у dest правильная ссылка.

Код: Выделить всё

id(dest)
129630572847344
id(self._New)
129630572847344
Да

Код: Выделить всё

dest = source.copy()

Код: Выделить всё

dest is self._New  # -> False
И явно не содержит данных. теперь указывает на другой адрес.
Gemini предложил использовать copy.deepcopy(), но это не решает мою проблему.
Каковы мои варианты решения этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ot-working
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»