сделать действительно глубокую копию серии панд - PullRequest
0 голосов
/ 08 октября 2018

У меня есть pd.Series с каждой ячейкой, являющейся списком.Я хочу сделать его глубокую копию, однако кажется, что pd.Series.copy создает только поверхностную копию значений (даже если deep arg равно True по умолчанию).

пример

import pandas as pd

sr = pd.Series([list(range(3)), list(range(3))])
sr_c = sr.copy()
sr[0].append(4)

скопированный pd.Series sr_c преобразуется в

0   [0, 1, 2, 4]
1   [0, 1, 2]

Я сделал это, и это сработало:

from copy import deepcopy
sr_c = sr_c.apply(deepcopy)

Однако это похоже на взлом, есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 08 октября 2018

Стандартный хакерский способ глубокого копирования объектов Python должен работать.То есть, используя pickle.

import pickle
sr2 = pickle.loads(pickle.dumps(sr))
...