为什么我们在pandas数据框中使用'loc'?似乎以下代码使用或不使用'loc'都可以以相似的速度编译和运行
%timeit df_user1 = df.loc[df.user_id=='5561']
100 loops, best of 3: 11.9 ms per loop
或者%timeit df_user1_noloc = df[df.user_id=='5561']
100 loops, best of 3: 12 ms per loop
那么为什么要使用loc呢?
编辑:这被标记为重复问题。但是,虽然pandas iloc vs ix vs loc explanation?提到了:
你可以只使用数据框的getitem来检索列:
*
df['time'] # equivalent to df.loc[:, 'time']
虽然它解释了许多loc的特性,但它并没有说明为什么我们要使用loc,我的具体问题是:“为什么不完全省略loc”?我已经接受了下面提供的非常详细的答案。
此外,那篇其他帖子的答案(我认为不是答案)在讨论中非常难以找到,任何搜索我正在寻找的信息的人都会很难找到该答案,并且对于我的问题所提供的答案更好。
.loc
、.iloc
和.ix
使用的一般性说明:如果你只是使用标签或者只是使用整数位置进行索引,请坚持使用 loc 或 iloc 来避免出现意外结果。 - LinkBerest.loc
。对于 Series,默认是在行上使用.loc
,因为没有列。 - Kartik