首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分配给父DataFrame会影响子DataFrame?

分配给父DataFrame会影响子DataFrame?
EN

Stack Overflow用户
提问于 2016-04-07 16:05:42
回答 1查看 129关注 0票数 0

文档和无数这样的答案说明,分配给“子”DataFrame可能会也可能不会反映在“父”DataFrame中(取决于某些条件)。

相反的情况又如何呢:分配给“父”DataFrame是否可以反映在“子”DataFrame中,而取决于完全相同的条件

我注意到,当分配给“父”SettingWithCopy时,似乎不会引发DataFrame警告;文档中也没有讨论过这一点。

代码语言:javascript
运行
复制
df_parent = pd.DataFrame({'a': [2,2,3,3], 'b': range(4)})
df_child = df_parent[df_parent['a']==2]
df_child.loc[0,'a'] = 100 # `SettingWithCopy` warning
df_parent.loc[0, 'a'] = 1000 # no warning; but unclear if df_child is updated?
EN

Stack Overflow用户

回答已采纳

发布于 2016-04-07 16:09:51

从文件中:

所有的熊猫数据结构都是值可变的(它们包含的值可以改变),但并不总是大小可变的。无法更改Series的长度,但可以将列插入到DataFrame中。然而,绝大多数方法都会产生新的对象,并将输入数据保持不变。不过,总的来说,我们喜欢在明智的地方坚持不变。

它在两个方向“起作用”:

代码语言:javascript
运行
复制
In [83]: df
Out[83]:
   a  b  c
0  0  9  5
1  9  1  5
2  7  0  0
3  3  6  9
4  4  0  8
5  4  5  8
6  1  3  6
7  4  4  9
8  6  7  4
9  2  9  6

In [84]: copy.ix[0,'a'] = 100

In [85]: copy
Out[85]:
     a  b  c
0  100  9  5
1    9  1  5
2    7  0  0
3    3  6  9
4    4  0  8
5    4  5  8
6    1  3  6
7    4  4  9
8    6  7  4
9    2  9  6

In [86]: df
Out[86]:
     a  b  c
0  100  9  5
1    9  1  5
2    7  0  0
3    3  6  9
4    4  0  8
5    4  5  8
6    1  3  6
7    4  4  9
8    6  7  4
9    2  9  6

如果您想要DF的独立副本,请使用.copy()

代码语言:javascript
运行
复制
In [89]: df
Out[89]:
   a  b  c
0  3  4  2
1  9  5  1
2  1  9  0

In [90]: copy = df.copy()

In [91]: df.ix[0,'a'] = 100

In [92]: df
Out[92]:
     a  b  c
0  100  4  2
1    9  5  1
2    1  9  0

In [93]: copy
Out[93]:
   a  b  c
0  3  4  2
1  9  5  1
2  1  9  0
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36481587

复制
相关文章

相似问题

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