Peraturan Panda untuk Paparan vs Penjanaan Salin
Panda menggunakan peraturan khusus apabila memutuskan sama ada operasi hirisan pada DataFrame menghasilkan paparan atau salinan. Dengan memahami peraturan ini, anda boleh mengoptimumkan manipulasi data anda dan mengelakkan tingkah laku yang tidak dijangka.
Bermula dengan operasi yang sentiasa menjana salinan:
- Semua operasi, kecuali yang direka khusus untuk mengubah suai DataFrame di tempatnya, buat salinan.
- Hanya operasi tertentu menyokong parameter inplace=True, yang membenarkan pengubahsuaian berlaku terus dalam DataFrame asal.
Seterusnya, mari pertimbangkan operasi yang mungkin menghasilkan paparan:
- Pengindeks yang menetapkan nilai, seperti .loc, .iloc, .iat dan .at, beroperasi di tempat, mengubah suai DataFrame asal tanpa membuat salinan.
- Pengindeks yang mendapatkan semula data daripada objek jenis d tunggal biasanya mencipta paparan, melainkan reka letak memori yang mendasari menghalang pengoptimuman ini.
- Sebaliknya, pengindeks yang mendapatkan semula data daripada objek berbilang djenis sentiasa mencipta salinan.
Mengenai contoh anda:
- df.query('2 < index <= 5') mengembalikan salinan kerana ia melibatkan angka penilaian ungkapan.
- df.iloc[3] = 70 dan df.ix[1, 'B':'E'] = 222 menukar df kerana mereka mengakses objek jenis d tunggal dan menetapkan nilai di tempatnya.
- df[df.C <= df.B] mengubah suai df kerana ia menggunakan penetap di tempat (df[...]) pada objek jenis d tunggal (topeng boolean yang terhasil).
- Walau bagaimanapun, df[df.C <= df.B].ix[:,'B':'E'] tidak mengubah suai df kerana ia melibatkan operasi pengindeksan berantai, yang tidak dijamin akan dipintas oleh Panda.
Untuk mengubah suai nilai tertentu berdasarkan pertanyaan, gunakan sintaks lokasi yang betul:
df.loc[df.C <= df.B, 'B':'E']
Salin selepas log masuk
Dengan mematuhi peraturan ini, anda boleh memperoleh pemahaman yang jelas tentang apabila Pandas menjana paparan atau salinan, memastikan manipulasi data yang cekap dalam skrip Python anda.
Atas ialah kandungan terperinci Bilakah Panda Membuat Paparan vs Salinan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!