Pandas を使用したデータ操作では、iloc と loc はよく使用される 2 つのスライス方法であり、混乱を引き起こすことがよくあります。効率的なデータ管理には、それらの根本的な違いを理解することが不可欠です。
ラベルと場所
loc と iloc の主な違いは、データの選択方法にあります。
例:
文字を含む非単調インデックスを持つ DataFrame df を考えます:
import pandas as pd df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e', 'f']}, index=[49, 48, 47, 0, 1, 2])
loc (ラベルベース) Slicing):
iloc (位置ベースのスライス):
主な違い:
次の表は、さまざまなシナリオにおける loc と iloc の違いを示しています:
Object | Description | loc | iloc |
---|---|---|---|
0 | Single item | Value at index label 0 ('d') | Value at index location 0 ('a') |
0:1 | Slice | Two rows (labels 0 and 1) | One row (first row at location 0) |
1:47 | Slice with out-of-bounds end | Zero rows (empty Series) | Five rows (location 1 onwards) |
1:47:-1 | Slice with negative step | Three rows (labels 1 back to 47) | Zero rows (empty Series) |
[2, 0] | Integer list | Two rows with given labels | Two rows with given locations |
s > 'e' | Boolean series (indicating true values) | One row (containing 'f') | NotImplementedError |
(s>'e').values | Boolean array | One row (containing 'f') | Same as loc |
999 | Integer object not in index | KeyError | IndexError (out of bounds) |
-1 | Integer object not in index | KeyError | Returns last value in s |
lambda x: x.index[3] | Callable applied to series (here returning 3rd item in index) | s.loc[s.index[3]] | s.iloc[s.index[3]] |
以上がデータ選択におけるパンダの「loc」と「iloc」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。