首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Pandas中检查数据帧是复制的还是查看的

在Pandas中检查数据帧是复制的还是查看的
EN

Stack Overflow用户
提问于 2014-11-12 12:05:06
回答 3查看 16.7K关注 0票数 56

有没有一种简单的方法来检查两个数据帧是否是相同底层数据的不同副本或视图,而不涉及操作?我正在试图掌握每个规则是什么时候生成的,并且考虑到这些规则看起来是多么独特,我希望有一种简单的方法来测试。

例如,我认为"id(df.values)“在视图之间应该是稳定的,但它们似乎不是:

代码语言:javascript
运行
复制
# Make two data frames that are views of same data.
df = pd.DataFrame([[1,2,3,4],[5,6,7,8]], index = ['row1','row2'], 
       columns = ['a','b','c','d'])
df2 = df.iloc[0:2,:]

# Demonstrate they are views:
df.iloc[0,0] = 99
df2.iloc[0,0]
Out[70]: 99

# Now try and compare the id on values attribute
# Different despite being views! 

id(df.values)
Out[71]: 4753564496

id(df2.values)
Out[72]: 4753603728

# And we can of course compare df and df2
df is df2
Out[73]: False

我查找的其他答案试图给出规则,但似乎不一致,也没有回答如何测试的问题:

当然还有:- http://pandas.pydata.org/pandas-docs/stable/indexing.html#returning-a-view-versus-a-copy

更新:下面的注释似乎回答了这个问题--查看df.values.base属性而不是df.values属性,以及对df._is_copy属性的引用(尽管后者可能是非常糟糕的形式,因为它是内部属性)。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26879073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档