复制参数vs Series.Copy()

时间:2018-01-10 10:54:07

标签: python pandas

y = pd.Series(x, copy=True,dtype=float)
z = pd.Series(x, copy=True)
a = pd.Series(x)
f = pd.Series.copy(x)

以上所有表达式都给出了相同的x值输出,即使在更新x值后,更改也没有反映出来。 所以我需要知道copy作为参数和series.copy()的用途,以及如何将x系列复制到其他系列,以便在x中做出的任何更改也会反映在新系列中。

如果有什么不对或不可能的话请原谅我......我是Python的新手,我出于好奇而问这些问题......

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果我们查看pandas Series的源代码,我们可以看到以下内容,

def __init__(self, data=None, index=None, dtype=None, name=None,
             copy=False, fastpath=False):

    if not isinstance(data, SingleBlockManager):
        data = SingleBlockManager(data, index, fastpath=True)
    if copy:
        data = data.copy()

因此,x参数已通过data,因此,行data = data.copy()会复制x。这应该等同于做,

g = pd.Series(x.copy())

这与pd.Series.copy(x)略有不同,x现在复制了Series对象本身,而不是基础x。因此,新系列可能仍会引用基础Series

制作副本的想法是,您确信在x上执行的任何操作都不会更改原始对象INSERT INTO `events` (`id`, `title`, `color`, `start`, `end`) VALUES (NULL, 'Sunday', '#FFE761', (select date_format(str_to_date("January 14 2018","%M %d %Y"),"%Y-%m-%d %I:%i"), '0000-00-00 00:00:00';