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

Apakah Perbezaan Antara `loc` dan `iloc` Panda untuk Pemilihan Data?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 03:10:10133semak imbas

What's the Difference Between Pandas `loc` and `iloc` for Data Selection?

Bagaimana iloc dan loc Perbezaan dalam Panda:

Dalam manipulasi data menggunakan Pandas, iloc dan loc ialah dua kaedah penghirisan yang biasa digunakan yang sering menyebabkan kekeliruan. Memahami perbezaan asas mereka adalah penting untuk pengurusan data yang cekap.

Label lwn. Lokasi

Perbezaan utama antara loc dan iloc terletak pada cara mereka memilih data:

  • loc: Mengakses data berdasarkan label, seperti nama baris atau lajur (label indeks dan lajur).
  • iloc: Mengakses data berdasarkan lokasi integer dalam objek paksi (baris/lajur nombor).

Contoh:

Pertimbangkan DataFrame df dengan indeks bukan monotonik yang mengandungi huruf:

import pandas as pd

df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e', 'f']}, index=[49, 48, 47, 0, 1, 2])

loc (Berasaskan Label Menghiris):

  • df.loc[0]: Mendapatkan semula baris dengan label indeks "0" ('d').
  • df.loc[0:1 ]: Mengembalikan dua baris dengan label 0 dan 1 ('d' dan 'e').

iloc (Penghirisan Berdasarkan Lokasi):

  • df.iloc[0]: Mendapat nilai di lokasi indeks 0 ('a').
  • df.iloc[0:1]: Memilih satu baris di lokasi indeks 0 ('a').

Perbezaan Utama:

Jadual berikut menyerlahkan perbezaan antara loc dan iloc dalam pelbagai senario:

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]]

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

Kenyataan:
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