Python 熊猫中df.loc[';col name';],df.loc[index][';col name';]和df.loc[index,';col name';]之间的差异?

Python 熊猫中df.loc[';col name';],df.loc[index][';col name';]和df.loc[index,';col name';]之间的差异?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧df,列名为“Store”。如果我想检索该列,下面几行同样有效-df['Store']或df[:]['Store']或df[:,'Store'] 这两者的区别是什么?一个应该被使用而不是另一个吗 谢谢。df.loc[index,'col name']更为惯用和首选,尤其是当您想要筛选行时 演示:用于1.000.000 x 3形状DF In [26]: df = pd.DataFrame(np.random.rand(10**6,3), columns=list('abc')) I

我有一个数据帧
df
,列名为“Store”。如果我想检索该列,下面几行同样有效-
df['Store']
df[:]['Store']
df[:,'Store']

这两者的区别是什么?一个应该被使用而不是另一个吗


谢谢。

df.loc[index,'col name']
更为惯用和首选,尤其是当您想要筛选行时

演示:用于1.000.000 x 3形状DF

In [26]: df = pd.DataFrame(np.random.rand(10**6,3), columns=list('abc'))

In [27]: %timeit df[df.a < 0.5]['a']
10 loops, best of 3: 45.8 ms per loop

In [28]: %timeit df.loc[df.a < 0.5]['a']
10 loops, best of 3: 45.8 ms per loop

In [29]: %timeit df.loc[df.a < 0.5, 'a']
10 loops, best of 3: 37 ms per loop
无条件访问多列:

In [34]: %timeit df[['a','b']]
10 loops, best of 3: 22 ms per loop

In [35]: %timeit df.loc[:, ['a','b']]
10 loops, best of 3: 22.6 ms per loop

df.loc[index,'col name']
更为惯用和首选,尤其是当您想要筛选行时

演示:用于1.000.000 x 3形状DF

In [26]: df = pd.DataFrame(np.random.rand(10**6,3), columns=list('abc'))

In [27]: %timeit df[df.a < 0.5]['a']
10 loops, best of 3: 45.8 ms per loop

In [28]: %timeit df.loc[df.a < 0.5]['a']
10 loops, best of 3: 45.8 ms per loop

In [29]: %timeit df.loc[df.a < 0.5, 'a']
10 loops, best of 3: 37 ms per loop
无条件访问多列:

In [34]: %timeit df[['a','b']]
10 loops, best of 3: 22 ms per loop

In [35]: %timeit df.loc[:, ['a','b']]
10 loops, best of 3: 22.6 ms per loop