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