2016-10-19 5 views

答えて

1

2:4はDFのキー/列にアクセスするための無効な構文であるため、それは失敗します。

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

あなたが定義されている場合、これはに違いはありませんdictと同じ構文を試した:

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 

[]構文は、一致する列ラベルにアクセスするために使用されます。このような列の範囲にアクセスするためにリスト内のスライスを渡すことはできません。すでに見つかった値のリストである必要があります。

新しい

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 

そしてスライスを経由して行を選択:

最初にリストにラベルを使用して列を選択し、あなたのために働い

何なilocixloc支援スライスなどのメソッドを範囲

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

申し訳ありませんが、私の同僚は私に来る。今私は二番目の答えを見る、私はそれが非常にいい説明だと思う。私は最高のものは['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

関連する問題