PANDAS中的高效列索引和选择

时间:2016-04-28 08:22:01

标签: python pandas multiple-columns

我正在寻找从数据框中选择多个列的最有效方法:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4,8), columns = list('abcdefgh'))

result of code above

我想只选择以下列a,c,e,f,g的列,可以使用索引来完成:

df.ix[:,[0,2,4,5,6]]

对于许多列的大型数据框,这似乎是一种效率低下的方法,我宁愿按范围指定连续的列索引,如果可能的话,但是如下所示的尝试都会引发语法错误:

df.ix[:,[0,2,4:6]]

df.ix[:,[0,2,[4:6]]]

3 个答案:

答案 0 :(得分:1)

我认为你可以使用range

print [0,2] + range(4,7)
[0, 2, 4, 5, 6]


print df.ix[:, [0,2] + range(4,7)]
          a         c         e         f         g
0  0.278231  0.192650  0.653491  0.944689  0.663457
1  0.416367  0.477074  0.582187  0.730247  0.946496
2  0.396906  0.877941  0.774960  0.057290  0.556719
3  0.119685  0.211581  0.526096  0.213282  0.492261

答案 1 :(得分:1)

选择不相邻的列后,您将支付负担 如果你的数据是同质的,那么回归到numpy会给你带来显着的改善。

<input type='checkbox' name='check[]' value='$hobby'><label>$hobby</label>

答案 2 :(得分:-1)

熊猫相对深思熟虑,最短的路是效率最高的:

df[['a','c','e','f','g']]

您不需要ix,因为它会搜索您的数据,但为此您显然需要列的名称。