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

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

Linda Hamilton
Linda Hamiltonasal
2024-11-05 00:12:02610semak imbas

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>

    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>

    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>

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>

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!

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