pandas数据框中的loc如何工作?

时间:2018-02-27 02:39:59

标签: python pandas dataframe

一个新问题,但我真的很困惑...... 假设有这样的数据帧:

>>>test = pd.DataFrame({'a':[1,1,0,0],'b':[1,1,0,0]})
>>>test
   a  b
0  1  1
1  1  1
2  0  0
3  0  0

运行以下代码,

test.loc[2:] = 1

第3行和第4行的数据将设置为1,数据帧将变为:

   a  b
0  1  1
1  1  1
2  1  1
3  1  1

但如果先将子集设置为varable,那么数据帧不会改变,

temp = test.loc[2:]
temp = 2 #nothing changed, just the temp variable set to 2

那么这两个代码之间有什么区别,为什么第一个代码改变了数据框?

1 个答案:

答案 0 :(得分:1)

Python按值分配所有内容。每个变量都是指向对象的指针。你是数据帧是一个永远不会被复制的对象,除非你明确地复制它。因此,当您为数据帧的切片分配temp时,您将重置temp的值以指向2.因此重置该值。尽量保持功能性/ pythonic。