【发布时间】:2019-11-10 13:15:41
【问题描述】:
如何选择原始变量“frame”的一部分,使得改变“frame2”也会改变“frame”?以下不起作用。
import pandas as pd
frame = pd.DataFrame([[1,2,3],[1,5,6], [7,8,9]])
frame2 = frame.loc[frame.loc[:,0] == 1]
frame2.loc[:,1] = -99
谢谢!
【问题讨论】:
-
你需要添加 .copy()
-
如果没有 WeNYoBen 推荐的
.copy(),frame 和 frame2 都指向内存中的同一个对象。当您使用.copy()时,您正在创建帧变量引用的数据帧的副本。frame2 = frame.loc[frame.loc[:,0] == 1].copy()是您要查找的内容。 -
我认为他们想要同时修改两者,顺便说一句,这是一种糟糕的做法。 API 的设计方式无法做到这一点。