猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为什么我要在pandas中复制一个数据框
从父数据帧中选择子数据帧时,我注意到一些程序员使用该
.copy()
方法复制数据帧。
他们为什么要复制数据框?如果我不复制会怎么样?
慕侠2389804
浏览 1533
回答 3
3回答
互换的青春
这扩展了保罗的答案。在Pandas中,索引DataFrame会返回对初始DataFrame的引用。因此,更改子集将更改初始DataFrame。因此,如果要确保初始DataFrame不应更改,则需要使用该副本。请考虑以下代码:df = DataFrame({'x': [1,2]})df_sub = df[0:1]df_sub.x = -1print(df)你会得到:x0 -11 2相反,以下叶子df不变:df_sub_copy = df[0:1].copy()df_sub_copy.x = -1
0
0
0
心有法竹
因为如果您不复制,那么即使您将dataFrame分配给其他名称,索引仍然可以在其他地方操作。例如:df2 = dffunc1(df2)func2(df)func1可以通过修改df2来修改df,所以为了避免这种情况:df2 = df.copy()func1(df2)func2(df)
0
0
0
FFIVE
有必要提一下,返回的副本或视图取决于索引的类型。熊猫文档说:返回视图与副本关于何时返回数据视图的规则完全取决于NumPy。每当索引操作中涉及标签数组或布尔向量时,结果将是副本。使用单标签/标量索引和切片,例如df.ix [3:6]或df.ix [:,'A'],将返回视图。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Python
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续