Senario:
Semasa memilih subset DataFrame, ia adalah perkara biasa untuk menemui kod yang secara eksplisit membuat salinan DataFrame induk menggunakan kaedah .copy(). Timbul persoalan: mengapa ini perlu?
Penaakulan:
Kerangka data Pandas berkelakuan berbeza daripada tatasusunan bahasa pengaturcaraan tradisional. Apabila mengindeks DataFrame panda (cth. my_dataframe[features_list]), nilai yang dikembalikan tidak menghasilkan salinan baharu sebaliknya mengembalikan paparan atau rujukan kepada DataFrame asal. Sebarang pengubahsuaian yang dibuat pada paparan ini akan menjejaskan DataFrame asal secara langsung.
Contoh:
Pertimbangkan kod berikut:
df = pd.DataFrame({'x': [1, 2]}) df_view = df[0:1] # Returns a view of the first row df_view['x'] = -1 # Check the original DataFrame print(df)
Output:
x 0 -1 1 2
Kod Disemak:
Output:
Dalam kes ini, df kekal tidak berubah.Faedah Penyalinan Bingkai Data:
df = pd.DataFrame({'x': [1, 2]}) df_copy = df[0:1].copy() # Makes a copy of the first row df_copy['x'] = -1 # Check the original DataFrame print(df)
x 0 1 1 2
Mencegah pengubahsuaian yang tidak disengajakan kepada DataFrame induk.
Pengasingan data: Membenarkan operasi bebas pada subset berbeza DataFrame.
Atas ialah kandungan terperinci Mengapa Saya Perlu Menggunakan .copy() Apabila Memilih Subset Pandas DataFrames?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!