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的新手,我出于好奇而问这些问题......
非常感谢您的帮助!
答案 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';
。