inplace
parametresi:
df.dropna(axis='index', how='all', inplace=True)
içinde Pandas
ve genel yollarla:
1. Pandalar, orijinal verilerin bir kopyasını oluşturur
2. ... üzerinde biraz hesaplama yapıyor
3. ... sonuçları orijinal verilere atar.
4. ... kopyayı siler.
Cevabımın geri kalanında aşağıda okuyabileceğiniz gibi, bu parametreyi kullanmak için hala iyi bir nedenimiz olabilir , yani inplace operations
, ancak daha fazla sorun oluşturduğundan, mümkünse bundan kaçınmalıyız, örneğin:
1. Kodunuzda hata ayıklamak daha zor olacaktır (Aslında AyarlamawithCopyWarning sizi bu olası soruna karşı uyarmak anlamına gelir)
2. Yöntem zincirleme ile çelişki
Öyleyse onu kullanmamız gereken bir durum var mı?
Kesinlikle evet. Büyük veri kümelerini işlemek için panda veya herhangi bir araç kullanırsak, bazı büyük verilerin tüm belleğimizi tüketebileceği durumla kolayca yüzleşebiliriz. Bu istenmeyen etkiyi önlemek için, yöntem zincirleme gibi bazı teknikler kullanabiliriz :
(
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"]]
)
Bu, kodumuzu daha kompakt hale getirir (yine de yorumlanması ve hata ayıklaması daha zor) ve zincirleme yöntemler diğer yöntemin döndürülen değerleriyle çalıştığı için daha az bellek tüketir, böylece girdi verilerinin yalnızca bir kopyası elde edilir. Bu işlemlerden sonra 2 kat orijinal veri hafıza tüketimimiz olacağını açıkça görebiliyoruz .
Veya inplace
parametre kullanabiliriz (yine de yorumlaması ve hata ayıklaması daha zordur) bellek tüketimimiz 2 x orijinal veri olacaktır , ancak bu işlemden sonra bellek tüketimimiz 1 x orijinal veri olarak kalır ; bu, biri büyük veri kümeleriyle çalıştığında tam olarak bilirse büyük fayda.
Final sonucu:
Çok inplace
büyük verilerle çalışmadığınız sürece parametre kullanmaktan kaçının ve yine de kullanılması durumunda olası sorunlarının farkında olun.
inplace=True
dönerNone
inplace=False
operasyonla nesnenin döner bir kopyası gerçekleştirilir. Dokümanlar bu konuda oldukça açık, belirli bir bölümle karıştıran bir şey var mı? SpeficallyIf True, do operation inplace and return None.