有许多不同的方法可以选择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()
有许多不同的方法可供选择,例如列d
df['d']
df.loc[:,'d']
(其中df.loc[row_indexer,column_indexer]
)df.loc[:]['d']
df.ix[:]['d']
df.ix[:,'d']
直观地说,我更愿意2),也许是因为我已经习惯了来自[row_indexer,column_indexer]
的{{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
事实证明,第一种方法比其他方法快得多。