mos*_*evi 6 python deep-copy pandas
我有一个pd.Series每个单元格都是一个列表。我想对它进行深拷贝,但似乎pd.Series.copy只创建了值的浅拷贝(即使deeparg 是True默认值)。
例子
import pandas as pd
sr = pd.Series([list(range(3)), list(range(3))])
sr_c = sr.copy()
sr[0].append(4)
Run Code Online (Sandbox Code Playgroud)
复制pd.Series sr_c的正在转换为
0 [0, 1, 2, 4]
1 [0, 1, 2]
Run Code Online (Sandbox Code Playgroud)
我这样做了,它奏效了:
from copy import deepcopy
sr_c = sr_c.apply(deepcopy)
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个黑客,有没有更好的方法来做到这一点?
深度复制python对象的标准hacky方式应该可以工作。也就是说,使用pickle.
import pickle
sr2 = pickle.loads(pickle.dumps(sr))
Run Code Online (Sandbox Code Playgroud)