ホームページ > バックエンド開発 > Python チュートリアル > データフレーム選択におけるパンダの「loc」と「iloc」の違いは何ですか?

データフレーム選択におけるパンダの「loc」と「iloc」の違いは何ですか?

DDD
リリース: 2024-12-22 00:27:40
オリジナル
789 人が閲覧しました

What's the Difference Between pandas' `loc` and `iloc` for DataFrame Selection?

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

Python の pandas ライブラリでは、loc 関数と iloc 関数はデータフレームのスライスに使用されます。これらはいくつかの類似点を共有していますが、主な目的と基礎となるメカニズムが大きく異なります。

loc と iloc: ラベルベースとロケーションベースの選択

loc行または列に関連付けられたインデックス値である labels に基づいて動作します。行 (または列) のラベルを指定された選択基準と照合することにより、行 (または列) を取得します。たとえば、df.loc[:5] は、ラベルが昇順で並んでいる DataFrame の最初の 5 行を返します。一方、

iloc は、以下に基づいて動作します。 整数の位置。 DataFrame 内の位置に基づいて行 (または列) を選択します。たとえば、df.iloc[:5] も最初の 5 行を返しますが、その選択は序数位置 (0 から始まるインデックス) に基づいて行われます。

区別を示す例

非単調インデックスを持つ次のデータフレームを考えてみましょう:

s = pd.Series(list("abcdef"), index=[49, 48, 47, 0, 1, 2]) 
ログイン後にコピー

loc と iloc を使用して、最初の 5 つの要素を取得します:

s.loc[:5]   # row by row label (inclusive)
s.iloc[:5]  # row by row location (exclusive)
ログイン後にコピー

結果は異なります:

  • s.loc[:5] はインデックス ラベル 0 ~ 5 (両端を含む) を持つ行を返します。 :
0    d
1    e
2    f
ログイン後にコピー
  • s.iloc[:5] は位置 0 にある行を返します
49    a
48    b
47    c
0    d
1    e
ログイン後にコピー

一般的な違い

loc と iloc の一般的な違いを要約すると、次のようになります。

  • loc:インデックス ラベル ベース、タグによる正確な選択。
  • iloc: 整数の場所ベース、による選択Position.
  • loc は非単調なインデックスと範囲外のラベルを処理できますが、iloc はそのような場合にエラーを発生させます。
  • iloc は、特定のシナリオでは、特にインデックスが

追加の考慮事項

重要ですiloc は DataFrame の列でも操作できますが、その構文は同じままであることに注意してください。ただし、loc は列を選択するときに軸ラベルを使用できるため、柔軟性が高まります。

詳細については、[インデックス付けとスライス] (https://pandas.pydata.org/docs/) に関する pandas のドキュメントを参照してください。 user_guide/indexing.html).

以上がデータフレーム選択におけるパンダの「loc」と「iloc」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート