微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-选择列的熊猫-最佳习惯和性能

在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

> 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),也许是因为我习惯了numpy的[row_indexer,column_indexer]样式

解决方法:

我将使用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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐