Код: Выделить всё
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")
Код: Выделить всё
dest is self._New # -> True
Код: Выделить всё
id(dest)
129630572847344
id(self._New)
129630572847344
Код: Выделить всё
dest = source.copy()
Код: Выделить всё
dest is self._New # -> False
Код: Выделить всё
dest
Gemini предложил использовать copy.deepcopy(), но это не решает мою проблему.
Каковы мои варианты решения этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ot-working