Я хочу копию кадра данных, который содержит кадр данных. Когда я изменяю что-то во вложенном фрейме данных, он не должен меняться в исходном фрейме данных.
У меня есть фрейм данных, подобный этому:
0 1 2
0 1 2 <__main__.PossibleCombinations object at 0x000...
1 4 5 6
Генерируется со следующим кодом:
import copy
import numpy as np
import pandas as pd
df = pd.DataFrame(data= [[1,2,3],[4,5,6]])
class PossibleCombinations:
def __init__(self, dfCombinations, numberCombinations):
self.dfCombinations = dfCombinations
self.numberCombinations = numberCombinations
df.iloc[0,2] = PossibleCombinations(pd.DataFrame(data= [[1,2,3],[4,5,6]]),6)
print(df)
Когда я делаю глубокую копию фрейма данных дырки и вложенного фрейма данных и что-то изменяю во вложенном фрейме данных в копии, значение также изменяется в оригинале.
deepCopy = copy.deepcopy(df)
deepCopy.iloc[0,2].dfCombinations = copy.deepcopy(df.iloc[0,2].dfCombinations)
deepCopy.iloc[0,2].dfCombinations.iloc[0,2] = "doei"
print(deepCopy.iloc[0,2].dfCombinations)
print(" ")
print(df.iloc[0,2].dfCombinations)
вывод:
0 1 2
0 1 2 doei
1 4 5 6
0 1 2
0 1 2 doei
1 4 5 6
но я хочу:
0 1 2
0 1 2 doei
1 4 5 6
0 1 2
0 1 2 3
1 4 5 6
Как решить эту проблему?