2016-04-04 15 views
2

パンダでのインデックス作成を見ているうちに、私は十分に簡単な質問がありました。 dfが十分に長いDataFrameの場合、df[1:2]は2行目を返しますが、df[1]はエラーを返し、df[[1]]は2番目の列を示します。何故ですか?パンダのインデックス作成の混乱

+0

'df [x]'を実行すると、ラベルが付いた列が検索されます。そのラベルが存在しないため、KeyErrorが発生します。スライス表記は行ラベルの参照を実行します。最後のものは少し驚きです、それは私が働いているとは思っていない何かである列のインデックスとしてiterable値を使用しています。一般的に行ラベルの選択には 'loc'、整数行に基づく選択には' iloc'、あいまいさを避けるために 'df [x]'や列名 'df [list_of_cols]'のリストを渡して列選択を行うべきです – EdChum

答えて

0

データフレームスライスの行データフレームのため[]オペレータ内部のスライスを使用して、パンダのインデックスドキュメントhereをチェックし、これはあなたが見ている動作を説明する必要があります。

1

df.iloc[1]を使用して、データフレームの2番目の行を選択します(ゼロベースのインデックスを使用します)。 2番目の列を選択するには、df.iloc[:, 1]を使用します(:はスライス表記ですべての行を選択します)。