我正在寻找从数据框中选择多个列的最有效方法:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4,8), columns = list('abcdefgh'))
我想只选择以下列a,c,e,f,g的列,可以使用索引来完成:
df.ix[:,[0,2,4,5,6]]
对于许多列的大型数据框,这似乎是一种效率低下的方法,我宁愿按范围指定连续的列索引,如果可能的话,但是如下所示的尝试都会引发语法错误:
df.ix[:,[0,2,4:6]]
或
df.ix[:,[0,2,[4:6]]]
答案 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,因为它会搜索您的数据,但为此您显然需要列的名称。