Pandas数据框架中的loc是如何工作的?

2024-10-06 12:29:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

>>>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,那么dataframe不会改变

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

这两个数据帧之间的区别是什么?你知道吗


Tags: the数据代码testdataframevariabletemploc
2条回答

这与loc无关。这是python中赋值工作的标准方式。数据帧是一个对象。loc是dataframe对象中的一个方法。作为例子,当cd2的引用被创建时,cd3是cd3的引用。a保持不变,直到您将赋值更改为变量a。你知道吗

#create a list
a = [1,2,3]

# add another reference to the list
b = a

b[1] = 5

b
Out[4]: [1, 5, 3]

# reassign the reference
b = 3

b
Out[6]: 3

a
Out[7]: [1, 5, 3]

Python按值分配一切。每个变量都是指向对象的指针。你知道dataframe是一个永远不会被复制的对象,除非你显式地复制它。因此,当您将temp分配给数据帧的一个片段时,您正在将temp的值重置为指向2。因此重置值。尽量保持它的功能性。你知道吗

相关问题 更多 >