iloc と loc の違い: ラベルと場所
区別を理解する
iloc と loc の主な違いは、行とデータにアクセスする方法にあります。 columns:
-
loc: 行と列のラベルを使用してデータを検索します。これらのラベルは通常、インデックス値または列名です。
-
iloc: 行と列の 整数の位置 を使用してデータを検索します。これらの場所は、DataFrame 内の要素の位置を参照します。
デモ
以下の DataFrame の例を考えてみましょう:
Index |
Column A |
0 |
John |
1 |
Mary |
2 |
Peter |
最初の 5 つを抽出rows:
-
loc[:5]: インデックス ラベル 0 ~ 4 (両端の値を含む) を持つすべての行を返します。
-
iloc[ :5]: 0 ~ 4 の整数位置にある最初の 5 行を返します。 (排他的)。
違いの明確化
さらに説明するには、非単調インデックスを考えてみましょう。
Index |
Series |
49 |
a |
48 |
b |
47 |
c |
0 |
d |
1 |
e |
2 |
f |
インデックスラベルの値0:
-
loc[0] はインデックス ラベルを使用するため 'd' をフェッチします。
-
iloc[0] は 'a をフェッチします' 整数の位置を使用するためです (「d」の整数の位置は3).
行のスライスへのアクセス:
-
loc[0:1] は、インデックス ラベル 0 と 1 (両端を含む) を持つ行を取得します。 .
-
iloc[0:1] を取得しますインデックス位置 0 の行のみ (行 1 は含まれません)。
追加の考慮事項
-
ラベルがありません: 指定されたラベルがインデックスにない場合、loc は KeyError を発生させますが、iloc はIndexError.
-
Boolean Series: loc は Boolean Series を通じてインデックスを作成できますが、iloc は NotImplementedError を返します。
-
Callables: loc と iloc は両方とも実行できます呼び出し可能オブジェクトをインデクサーとして適用しますが、範囲外の値を処理します
以上がデータ選択における Pandas の「iloc」と「loc」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。