2016-10-19 44 views

回答

1

它失败,因为2:4是无效的语法来访问键/一DF的列:

In [73]: 
df[[2:4]] 
    File "<ipython-input-73-f0f09617b349>", line 1 
    df[[2:4]] 
     ^
SyntaxError: invalid syntax 

这是,如果你没有定义不同字典,并尝试相同的语法:

In [74]: 
d = {0:0,1:1,2:2,3:3,4:4,5:5} 
d 

Out[74]: 
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5} 

In [76]: 
d[[2:4]] 

    File "<ipython-input-76-ea5d68adc389>", line 1 
    d[[2:4]] 
     ^
SyntaxError: invalid syntax 

The []语法用于访问匹配的列标签,您不能通过列表中的切片访问像这样的列的范围,它需要是您已经找到的值列表

较新的方法如ilocixloc支撑片范围

什么为你工作,初步选定使用的标签列表中的列:

In [77]: 
df[[2,3,4]] 

Out[77]: 
    2 3 4 
0 3 4 5 
1 3 4 5 
2 3 4 5 
3 3 4 5 
4 3 4 5 

,然后通过切片选择行:

In [79]: 
df[[2,3,4]][2:4] 

Out[79]: 
    2 3 4 
2 3 4 5 
3 3 4 5 
1

我想你需要ix

print (df.ix[2:4,2:4]) 
    2 3 
2 3 4 
3 3 4 
4 3 4 
+0

很酷,感谢那jezrael –

+0

对不起,我的coleague找到了我。现在我看到第二个答案,我认为这是非常好的解释。我认为最好的选择是使用['ix'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.ix.html),['iloc'](http ://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.iloc.html)或['loc'](http://pandas.pydata.org/pandas-docs/stable/generated/ pandas.DataFrame.loc.html)。 – jezrael