Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Cekap Menetapkan Nilai Sel Khusus dalam Pandas DataFrame?

Bagaimana untuk Cekap Menetapkan Nilai Sel Khusus dalam Pandas DataFrame?

Linda Hamilton
Lepaskan: 2024-12-01 17:28:11
asal
439 orang telah melayarinya

How to Efficiently Set a Specific Cell Value in a Pandas DataFrame?

Tetapkan Nilai untuk Sel Tertentu dalam Pandas DataFrame

Anda telah mencipta DataFrame dan ingin menukar nilai sel tertentu . Walau bagaimanapun, menggunakan df.xs('C')['x'] = 10 tidak mengemas kini DataFrame seperti yang dijangkakan. Mengapa?

Masalahnya berpunca daripada cara df.xs() beroperasi. Secara lalai, ia mengembalikan DataFrame baharu dengan salinan data. Jadi, df.xs('C')['x'] = 10 hanya mengubah suai DataFrame baharu, bukan yang asal.

Sebaliknya, anda boleh menggunakan df['x']['C'] = 10. Kaedah ini mengembalikan paparan DataFrame asal dan sebarang pengubahsuaian akan digunakan pada df.

Walau bagaimanapun, pendekatan yang disyorkan menggunakan .at atau .iat:

  • df.at['C', 'x'] = 10: Tetapkan nilai pada baris 'C' dan lajur 'x' secara langsung.
  • df.iat[2, 0] = 10: Mengakses sel menggunakan kedudukan indeksnya (2 untuk baris, 0 untuk lajur).

Mengapa df.xs('C')['x'] = 10 ditamatkan?

df.set_value('C' , 'x', 10) ialah kaedah pilihan kerana ia lebih pantas. Walau bagaimanapun, df.set_value() dijadualkan untuk penamatan.

Perbandingan Prestasi

Tanda aras menunjukkan bahawa df.set_value() mengatasi pilihan lain dari segi kelajuan:

In [18]: %timeit df.set_value('C', 'x', 10)
100000 loops, best of 3: 2.9 µs per loop

In [20]: %timeit df['x']['C'] = 10
100000 loops, best of 3: 6.31 µs per loop

In [81]: %timeit df.at['C', 'x'] = 10
100000 loops, best of 3: 9.2 µs per loop
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Cekap Menetapkan Nilai Sel Khusus dalam Pandas 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan