2016-12-17 10 views

答えて

5

いいえ、ロケーションベースのインデックスは、pandasデータ構造のための包括のエンドポイントを持っています。スライス エンドポイントがパンダでラベルベースのスライスが含まれており、包括的ではないとした標準のPythonシーケンスのスライスと比較しCaveats and Gotchas.

を参照してください。 これの主な理由は、 の特定のラベルの後に "後継者"または次の要素を簡単に決定することができないことが多いということです。

あなたが整数位置ベースのインデックスを使用した場合、ilocのように、これはバニラpythonデータ構造のように動作します:

In [5]: df 
Out[5]: 
    0 1 2 3 
0 1 21 51 61 
1 2 22 52 62 
2 3 23 53 63 

In [6]: df.iloc[0:0] 
Out[6]: 
Empty DataFrame 
Columns: [0, 1, 2, 3] 
Index: [] 

In [7]: df.loc[0:0] 
Out[7]: 
    0 1 2 3 
0 1 21 51 61 

In [8]: 
+0

非常に良い答え。しかし、この動作は不快で直感的ではありません – mwm314

+0

この質問をする正しいフォーラムではありません。しかし、スライスが無効になっている/誇張されたエラーがわずかに異なる動作を与えるよりも、平均的な開発者はもっと幸せでした! –

+1

@Ajeet no、ロケーションベースのスライシングは素晴らしく、開発者をより幸せにするでしょう。平均的な開発者は、ドキュメントを読んだほうが幸せです。 –

1

スライスは通常、第二の最初のインデックスとの排他的で包括的です。たとえば、次のラベル付きhttp://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html

スライスオブジェクト、例えば:ただし

x = [1,2,3,4,5] 
print x[0:0] 
# prints [], the empty list. 

、両方の開始と終了インデックスがloc機能のために含まれてドキュメントの日として普通言います'a': 'f'(通常の のpythonスライスとは異なり、開始と停止の両方が含まれていることに注意してください)。

なぜパンダがあなたのようにあなたをトロールしたかったのですか?神様しか分からない。

+0

なぜ彼らは言語セマンティクスと矛盾する動作を導入するのですか? –

+1

私は確信していません、私は今もうんざりです。私はあなたがそれを投稿するまで私は実際にこれを知らなかった(私はパンダを頻繁に使用しない、ちょうど純粋なnumpyは通常私のためのトリックを行う) – mwm314

関連する問題