通过iloc分配熊猫df切片是否通过引用?

时间:2018-08-29 21:38:13

标签: python pandas

我是python和pandas的新用户,而且我不了解如何通过iloc“切片器”将熊猫df1的切片分配给另一个df2,如何通过引用从df1复制数据。

下面的示例代码说明了我的问题。如果我使用赋值y = 123,则x保持不变。但是,如果我修改y.iloc[:,:],那么通过“魔术”也可以改变x。 y.iloc是指向x的指针吗?如果y.iloc是指向x的指针,那么如果我直接通过赋值y = 123修改y,为什么x保持不变?

d = {'col1': [5]}
x = pd.DataFrame(data=d)
print('x equals')
print(x)
y = x.iloc[:,:]
print('y equals')
print(y)

#why does the y.iloc[:,:]=123 also modify x?
y.iloc[0,0] = 123 
#y = 123 #this way x is unchanged.

print('y equals')
print(y)
print('x equals')
print(x)

1 个答案:

答案 0 :(得分:1)

这可能会回答您的问题: why should I make a copy of a data frame in pandas

“在Pandas中,为DataFrame编制索引将返回对初始DataFrame的引用”