Rumah > pembangunan bahagian belakang > Tutorial Python > Panda: Bilakah Memilih daripada DataFrame Mencipta Paparan vs. Salinan?

Panda: Bilakah Memilih daripada DataFrame Mencipta Paparan vs. Salinan?

Linda Hamilton
Lepaskan: 2024-11-05 00:12:02
asal
687 orang telah melayarinya

Pandas: When Does Selecting from a DataFrame Create a View vs. a Copy?

Panda: Memahami Peraturan untuk Menjana Pandangan vs Salinan

Kekeliruan dalam Mengenalpasti Pandangan dan Salinan

Menentukan sama ada pilihan daripada Pandas DataFrame menghasilkan paparan atau salinan boleh membingungkan. Kekeliruan ini timbul terutamanya daripada kepelbagaian operasi pengindeksan dan kelakuannya yang berbeza-beza.

Peraturan Am

  • Semua operasi DataFrame sememangnya mencipta salinan.
  • Pilihan inplace=True, apabila tersedia, membenarkan pengubahsuaian di tempat.
  • Penindeks yang menetapkan nilai (cth., .loc, .iloc, .iat, .at) biasanya melakukan operasi di tempat.
  • Mendapatkan nilai daripada objek jenis data tunggal menggunakan pengindeks selalunya menghasilkan paparan (walaupun susun atur memori boleh menjejaskan perkara ini).
  • Mendapatkan nilai daripada objek jenis data berbilang menggunakan pengindeks sentiasa menghasilkan copy.

Contoh Khusus

  • Menetapkan nilai kepada perbandingan:

    <code class="python">df[df.C <= df.B] = 7654321</code>
    Salin selepas log masuk

    Tugasan ini mengubah suai DataFrame df asal kerana pengindeks .loc digunakan untuk menetapkan nilai di tempat.

  • Pengindeksan berantai:

    <code class="python">df[df.C <= df.B].loc[:, 'B':'E']</code>
    Salin selepas log masuk

    Pembedahan ini tidak digalakkan kerana ia mungkin tidak boleh dipercayai. Untuk mengelakkan isu yang berpotensi, gunakan sintaks berikut:

    <code class="python">df.loc[df.C <= df.B, 'B':'E']</code>
    Salin selepas log masuk

Mengubah Suai Nilai Berdasarkan Pertanyaan

Untuk mengubah suai semua nilai dalam DataFrame yang memenuhi syarat pertanyaan tertentu, gunakan pengindeks loc dengan syarat pertanyaan sebagai hujah. Contohnya:

<code class="python">df.loc[df.C <= df.B, 'E'] = 40</code>
Salin selepas log masuk

Tugasan ini hanya akan menukar nilai dalam lajur 'E' untuk baris dengan df.C kurang daripada atau sama dengan df.B.

Atas ialah kandungan terperinci Panda: Bilakah Memilih daripada DataFrame Mencipta Paparan vs. Salinan?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan