Pandas DataFrame df.loc是一个视图还是一个新的DataFrame对象?

时间:2017-08-16 00:13:44

标签: python pandas dataframe

标题说。在StackOverflow 34884536接受的答案中,它说

  

您可以在此处找到有关问题性质的更长时间的讨论,   但主要的好处是,我们现在正转向“写作时复制”#34;   任何时候你切片的行为,你得到一个新的副本,你   永远不必考虑观点。

     

...

     

最佳猜测是修复将在一年内 - 同时,   我担心一些.copy()可能是必要的,对不起!

     

(已回答2016/01/20)

df.loc []是否会返回'副本'现在?或者为了安全起见,我仍然需要使用.copy()?

2 个答案:

答案 0 :(得分:2)

它返回一份副本。您可以通过制作副本,通过.loc将索引分配给另一个变量,更改变量以及注意到原始帧不会发生变化来测试。

略有关联,但在此处有更多信息:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

答案 1 :(得分:0)

它可能返回副本或视图,具体取决于数据帧的底层结构。为了安全起见,您应该使用 .copy()

那里给出了行为差异的一个很好的例子: In Pandas, does .iloc method give a copy or view?