Memahami Keperluan untuk Penyalinan DataFrame dalam Pandas
Apabila bekerja dengan bingkai data Pandas, pilihan sama ada untuk mencipta salinan a kerangka data boleh mempunyai implikasi yang ketara. Secara lalai, mengindeks kerangka data mengembalikan rujukan kepada struktur data asal. Oleh itu, sebarang pengubahsuaian yang dibuat pada subset akan secara langsung mengubah suai bingkai induk.
Untuk menggambarkan tingkah laku ini, pertimbangkan contoh berikut:
df = pd.DataFrame({'x': [1, 2]}) df_sub = df[0:1] df_sub.x = -1 print(df)
Output:
x 0 -1 1 2
Seperti yang anda boleh perhatikan, mengubah suai nilai subset secara langsung mengubah nilai yang sepadan dalam bingkai data asal.
Dalam situasi yang penting untuk melindungi bingkai data asal daripada pengubahsuaian, penyalinan adalah perlu. Ini boleh dicapai menggunakan kaedah .copy(). Berikut ialah contoh:
df_sub_copy = df[0:1].copy() df_sub_copy.x = -1 print(df)
Output:
x 0 1 1 2
Dalam kes ini, .copy() memastikan bahawa sebarang perubahan yang dibuat kepada df_sub_copy tidak akan menjejaskan df asal.
Adalah penting untuk memahami bahawa tingkah laku ini terpakai kepada salinan dalam sahaja, yang bermaksud keseluruhan data yang dirujuk disalin ke dalam objek baharu. Sebaliknya, salinan cetek mencipta objek baharu yang merujuk data asas yang sama seperti yang asal. Oleh itu, sebarang perubahan yang dibuat kepada salinan cetek juga akan menjejaskan kerangka data asal.
Atas ialah kandungan terperinci Mengapakah pengubahsuaian Pandas DataFrame kadangkala menjejaskan DataFrame asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!