熊猫系列.loc [[0,1]]与.loc [0:1]

时间:2019-08-08 20:21:10

标签: python pandas indexing slice

tl; dr:为什么.loc[[0,1]]似乎创建副本,而.loc[0:1]似乎创建引用?


在寻找this question的答案时,我发现.loc[[0,1]]的行为与.loc[0:1]不同。例如,如果我有一个熊猫系列,例如:

>>> import pandas as pd
>>> my_series = pd.Series(dict(x=0, y=1, z=2))
>>> my_series
x    0
y    1
z    2
dtype: int64

然后我使用.loc[['x','y']]对其进行索引,这似乎可以创建一个副本

>>> my_series = pd.Series(dict(x=0, y=1, z=2))
>>> reference = my_series.loc[['x', 'y']]
>>> my_series.x = 10
>>> reference
x    0
y    1
dtype: int64

而当我使用.loc['x':'y']对其进行索引时,这似乎会创建一个引用

>>> my_series = pd.Series(dict(x=0, y=1, z=2))
>>> reference = my_series.loc['x':'y']
>>> my_series.x = 10
>>> reference
x    10
y    1
dtype: int64

这是怎么回事?


与{p>一样,相同的行为仍然存在,省略了.loc

>>> reference = my_series[['x', 'y']]

>>> reference = my_series['x':'y']

我已经在文档Returning a view versus a copy中看到了此页面,但是它没有解释观察到的行为差异。

0 个答案:

没有答案