【发布时间】:2017-06-05 12:51:21
【问题描述】:
请帮助我理解:Pandas 中的 view 是什么。
我知道,如果我们更改 view 中的某些内容,我们总是会更改原始对象。
但是一个对象的视图和原始对象有不同的id's,例如。这是否意味着view 是另一个引用原始对象的对象?机制是什么?
我试过了,但找不到解释。
import pandas as pd
import numpy as np
df = pd.DataFrame({'x': [1,2]})
print(df)
df_sub = df[0:1]
df_sub.x = -1
print(df_sub._is_view) # True
print(id(df) == id(df_sub)) # False
print(np.shares_memory(df, df_sub)) # True
【问题讨论】:
-
你能举个例子吗?
-
@cricket_007 确定,秒
-
查看 this article 和 this post 的 numpy 视图与副本。很多 pandas 要么类似于 numpy,要么实际上是表面下的 numpy,所以这个解释应该适用于你的大部分情况。
-
如果我理解正确,视图是原始数据的子集...stackoverflow.com/questions/17960511/…
-
@bunji 谢谢,我已经阅读了这 2 篇文章。但我找不到解释什么是
View:)
标签: python arrays pandas numpy