The inplace
parameter:
df.dropna(axis='index', how='all', inplace=True)
secara Pandas
umum dan berarti:
1. Panda membuat salinan dari data asli
2. ... melakukan beberapa perhitungan di atasnya
3. ... memberikan hasil ke data asli.
4. ... menghapus salinan.
Seperti yang dapat Anda baca di sisa jawaban saya adalah lebih lanjut di bawah, kita masih bisa memiliki alasan yang baik untuk menggunakan parameter ini yaitu inplace operations
, tapi kita harus menghindari jika kita bisa, karena menghasilkan masalah yang lebih, seperti:
1. Kode Anda akan lebih sulit untuk di-debug (Sebenarnya SettingwithCopyWarning berarti memperingatkan Anda tentang kemungkinan masalah ini)
2. Konflik dengan rangkaian metode
Jadi adakah kasus ketika kita harus menggunakannya?
Pasti ya. Jika kita menggunakan panda atau alat apa pun untuk menangani kumpulan data yang sangat besar, kita dapat dengan mudah menghadapi situasi, di mana beberapa data besar dapat menghabiskan seluruh memori kita. Untuk menghindari efek yang tidak diinginkan ini kita dapat menggunakan beberapa teknik seperti perangkaian metode :
(
wine.rename(columns={"color_intensity": "ci"})
.assign(color_filter=lambda x: np.where((x.hue > 1) & (x.ci > 7), 1, 0))
.query("alcohol > 14 and color_filter == 1")
.sort_values("alcohol", ascending=False)
.reset_index(drop=True)
.loc[:, ["alcohol", "ci", "hue"]]
)
yang membuat kode kita lebih ringkas (meskipun lebih sulit untuk ditafsirkan dan di-debug juga) dan menggunakan lebih sedikit memori karena metode yang dirantai berfungsi dengan nilai yang dikembalikan metode lain, sehingga hanya menghasilkan satu salinan data masukan. Kita dapat melihat dengan jelas, bahwa kita akan memiliki 2 x konsumsi memori data asli setelah operasi ini.
Atau kita dapat menggunakan inplace
parameter (meskipun lebih sulit untuk menafsirkan dan men-debug juga) konsumsi memori kita akan menjadi 2 x data asli , tetapi konsumsi memori kita setelah operasi ini tetap 1 x data asli , yang jika seseorang bekerja dengan dataset besar tahu persis bisa menjadi a manfaat besar.
Kesimpulan akhir:
Hindari menggunakan inplace
parameter kecuali jika Anda tidak bekerja dengan data besar dan waspadai kemungkinan masalahnya jika masih menggunakannya.
inplace=True
mengembalikanNone
inplace=False
salinan objek dengan operasi yang dilakukan. Dokumennya cukup jelas tentang ini, apakah ada yang membingungkan dengan bagian tertentu? SpeficallyIf True, do operation inplace and return None.