熊猫选择栏目 - 最佳习惯和表现

时间:2014-10-21 16:17:31

标签: python numpy pandas

有许多不同的方法可以选择pandas.DataFrame中的列(行相同)。我想知道它是否有任何不同,是否有任何表现和风格建议。

例如,如果我有一个DataFrame如下:

import pandas as pd
import numpy as np

df = pd.DataFrame(data=np.random.random((10,4)), columns=['a','b','c','d'])
df.head()

enter image description here

有许多不同的方法可供选择,例如列d

  • 1)df['d']
  • 2)df.loc[:,'d'](其中df.loc[row_indexer,column_indexer]
  • 3)df.loc[:]['d']
  • 4)df.ix[:]['d']
  • 5)df.ix[:,'d']

直观地说,我更愿意2),也许是因为我已经习惯了来自[row_indexer,column_indexer]的{​​{1}}风格

1 个答案:

答案 0 :(得分:4)

我会使用ipython的魔术函数%timeit来找出最佳的效果方法。 结果是:

%timeit df['d']
100000 loops, best of 3: 5.35 µs per loop

%timeit df.loc[:,'d']
10000 loops, best of 3: 44.3 µs per loop

%timeit df.loc[:]['d']
100000 loops, best of 3: 12.4 µs per loop

%timeit df.ix[:]['d']
100000 loops, best of 3: 10.4 µs per loop

%timeit df.ix[:,'d']
10000 loops, best of 3: 53 µs per loop

事实证明,第一种方法比其他方法快得多。