Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah Perbezaan Antara `loc` dan `iloc` panda untuk Pemilihan DataFrame?

Apakah Perbezaan Antara `loc` dan `iloc` panda untuk Pemilihan DataFrame?

DDD
Lepaskan: 2024-12-22 00:27:40
asal
791 orang telah melayarinya

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

Bagaimanakah iloc dan loc berbeza?

Dalam perpustakaan panda Python, fungsi loc dan iloc digunakan untuk menghiris DataFrames. Walaupun mereka berkongsi beberapa persamaan, mereka berbeza dengan ketara dalam tujuan utama dan mekanisme asasnya.

loc vs. iloc: Label-Based vs. Location-Based Selection

loc beroperasi berdasarkan label, iaitu nilai indeks yang dikaitkan dengan baris atau lajur. Ia mendapatkan semula baris (atau lajur) dengan memadankan labelnya dengan kriteria pemilihan yang ditentukan. Sebagai contoh, df.loc[:5] akan mengembalikan lima baris pertama DataFrame, di mana label berada dalam tertib menaik.

iloc, sebaliknya, beroperasi berdasarkan lokasi integer. Ia memilih baris (atau lajur) berdasarkan kedudukannya dalam DataFrame. Contohnya, df.iloc[:5] juga akan mengembalikan lima baris pertama, tetapi pemilihannya adalah berdasarkan kedudukan ordinal (indeks berasaskan 0).

Contoh untuk Menjelaskan Perbezaan

Pertimbangkan DataFrame berikut dengan indeks bukan monotonik:

s = pd.Series(list("abcdef"), index=[49, 48, 47, 0, 1, 2]) 
Salin selepas log masuk

Menggunakan loc dan iloc untuk dapatkan semula lima elemen pertama:

s.loc[:5]   # row by row label (inclusive)
s.iloc[:5]  # row by row location (exclusive)
Salin selepas log masuk

Hasilnya berbeza:

  • s.loc[:5] mengembalikan baris dengan label indeks 0 hingga 5 (termasuk), menghasilkan :
0    d
1    e
2    f
Salin selepas log masuk
  • s.iloc[:5] mengembalikan baris di lokasi 0 hingga 4 (eksklusif), menghasilkan:
49    a
48    b
47    c
0    d
1    e
Salin selepas log masuk

Perbezaan Umum

Untuk meringkaskan perbezaan umum antara loc dan iloc:

  • loc : Berasaskan label indeks, pemilihan tepat mengikut tag.
  • iloc: Integer berasaskan lokasi, pemilihan mengikut kedudukan.
  • loc boleh mengendalikan indeks bukan monotonik dan label luar sempadan, manakala iloc menimbulkan ralat dalam kes sedemikian.
  • iloc berprestasi lebih pantas daripada loc dalam tertentu senario, terutamanya apabila indeks adalah angka dan tertib.

Tambahan Pertimbangan

Adalah penting untuk ambil perhatian bahawa iloc juga boleh beroperasi pada lajur DataFrame, tetapi sintaksnya tetap sama. loc, walau bagaimanapun, boleh menggunakan label paksi apabila memilih lajur, memberikan lebih fleksibiliti.

Untuk maklumat lanjut, rujuk dokumentasi panda tentang [pengindeksan dan penghirisan](https://pandas.pydata.org/docs/ panduan_pengguna/indexing.html).

Atas ialah kandungan terperinci Apakah Perbezaan Antara `loc` dan `iloc` panda untuk Pemilihan DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan