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中也是如此。您可以在中找到更多详细信息。