ホームページ >バックエンド開発 >Python チュートリアル >DataFrame スライスにおける Pandas の「loc」メソッドと「iloc」メソッドの主な違いは何ですか?

DataFrame スライスにおける Pandas の「loc」メソッドと「iloc」メソッドの主な違いは何ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 13:00:11224ブラウズ

What are the key differences between Pandas' `loc` and `iloc` methods for DataFrame slicing?

iloc と loc はどう違うのですか?

iloc と loc は、Pandas で DataFrame をスライスするための 2 つの方法です。どちらのメソッドも行と列の選択に使用できますが、入力の解釈方法が異なります。

loc は、特定の ラベル を持つ行 (および/または列) を取得します。

iloc は整数 場所 で行 (および/または列) を取得します。

デモとして、非単調整数インデックスを持つ一連の文字を考えてみましょう:

>>> s = pd.Series(list("abcdef"), index=[49, 48, 47, 0, 1, 2])
49    a
48    b
47    c
0     d
1     e
2     f
s.loc[0]    # value at index label 0
'd'

s.iloc[0]   # value at index location 0
'a'

s.loc[0:1]  # rows at index labels between 0 and 1 (inclusive)
0    d
1    e

s.iloc[0:1] # rows at index location between 0 and 1 (exclusive)
49    a

さまざまなオブジェクトが渡されたときの s.loc と s.iloc の相違点/類似点の一部を以下に示します。

Object Description s.loc[Object] s.iloc[Object]
0 Single item Value at index label 0 (_the string 'd'_) Value at index location 0 (_the string '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' Bool series (indicating which values have the property) One row (containing 'f') NotImplementedError
(s>e).values Bool array One row (containing 'f') Same as loc
999 Int object not in index KeyError IndexError (out of bounds)
-1 Int 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]]

以上がDataFrame スライスにおける Pandas の「loc」メソッドと「iloc」メソッドの主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。