Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:选择带有d[condition]和d.loc[condition]的行之间的差异?(并为返回的行设置值)_Python_Pandas - Fatal编程技术网

Python 熊猫:选择带有d[condition]和d.loc[condition]的行之间的差异?(并为返回的行设置值)

Python 熊猫:选择带有d[condition]和d.loc[condition]的行之间的差异?(并为返回的行设置值),python,pandas,Python,Pandas,例如,如果我有一个数据帧d,列a、B、C,我运行 d[(d.A==2)和(d.B>3)] 这个和那个有区别吗 d.loc[(d.A==2)和(d.B>3)] 我特别想知道,因为我将设置这个条件索引返回的值,并且设置值的行为似乎会根据我是否有.loc而改变。但是我可能错了过滤行没有区别它们应该是相同的。但是如果你想设置某个列的值,比如说C,你应该使用loc:d.loc[(d.A==2)和(d.B>3),'C']='something'。确保你没有连锁:d.loc[(d.A==2)和(d.B>3)]

例如,如果我有一个数据帧
d
,列
a、B、C
,我运行

d[(d.A==2)和(d.B>3)]

这个和那个有区别吗

d.loc[(d.A==2)和(d.B>3)]


我特别想知道,因为我将设置这个条件索引返回的值,并且设置值的行为似乎会根据我是否有.loc而改变。但是我可能错了

过滤行没有区别它们应该是相同的。但是如果你想设置某个列的值,比如说
C
,你应该使用
loc
d.loc[(d.A==2)和(d.B>3),'C']='something'
。确保你没有连锁:
d.loc[(d.A==2)和(d.B>3)]['C']='something'
@QuangHoang谢谢!我确实读过,我不应该在以前的SO帖子上使用链接。但是你能解释一下为什么在设置值时应该使用
.loc
(与我指出的跳过
.loc
)的第一种语法相反)吗?基本上,它归结为在链接索引时返回副本与视图的不确定性,即使在numpy中也是如此。您可以在中找到更多详细信息。