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 值之后,变化也没有反射(reflect)出来。 所以我需要知道 copy 作为参数和 series.copy() 的用途是什么,以及如何将 x 系列复制到其他系列,以便在 x 中所做的任何更改也反射(reflect)在新系列中。
如果有任何错误或不可能,请原谅我...我是 Python 的新手,出于好奇我问这些问题...
非常感谢您的帮助!
最佳答案
如果我们查看 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()
所以您已经为 data
参数传递了 x
,因此,行 data = data.copy()
复制了 x
。这应该相当于做,
g = pd.Series(x.copy())
这与 pd.Series.copy(x)
略有不同,后者现在复制 Series 对象本身,而不是底层的 x
。因此,底层 x
可能仍会被新系列引用。
制作副本的想法是,您确信对 Series
执行的任何操作都不会更改原始对象 x
。
关于python - 复制参数与 Series.Copy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48185809/