Çözüldü Python Pandas df.loc neden "[]" kullanıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
26 Ocak 2020
Mesajlar
6.332
Makaleler
1
Çözümler
13
Yer
İstanbul
Df. Loc[] bir fonksiyon mu? İlk düşüncem "df.loc = header yerine index kullanan ve series'lerden oluşan bir list" oldu. Kaynak kod nasıl çalışıyor hiçbir fikrim yok ama. java'dan geçtim pythona biraz kafam karışıyor. Kullanımı basit ve anlaşılır ama ana çalışma sebebini bilmeyince rahat edemiyorum. Biliyorsanız açıklayabilir misiniz? Ve sizce bu şekilde iyice öğrenmek doğru mu yoksa zaman kaybı mı? Teşekkürler.
 
Çözüm
df.loc[] bir fonksiyon mu?

VS Code'da Ctrl'ye basılı tutup tıklarsak şu çıkıyor karşımıza:

1720453628698.png


Görüldüğü üzere @property decoratorıyla decorate edilmiş. Burada ben de hakim olmadığım için detaya giremeyeceğim.

Sorunuzun cevabı "yesn't" gibi geldi bana: Hem evet hem hayır.

Köşeli parantezin nasıl çalıştığına dair şuradaki ilk cevapta güzel bir açıklama yapılmış:


Şöyle ki siz bir sınıfın __getitem__ metodunu yazarsanız köşeli parantezi tıpkı normal parantezle fonksiyon çağırırmışçasına kullanabiliyorsunuz: x = obje[...]. Üzerine __setitem__ metodu da obje[...] = 1 gibi atamalar yapmanıza olanak tanıyor. df.loc'un döndürdüğü şey bir _LocIndexer nesnesi ve bu _LocIndexer sınıfında -daha doğrusu türediği _LocationIndexer sınıfında- bu iki metot yazılmış, bu sayede df.loc[...] çalışıyor. Dikkat edin ki burada köşeli parantezle loc ayrı şeyler yani direkt df.loc da yazabilirsiniz, her ne kadar anlamsız olursa da:

1720454498047.png



Ve sizce bu şekilde iyice öğrenmek doğru mu yoksa zaman kaybı mı?

İrdelemenize bayıldım. Çalışma mantığını kavramak adına yaptığınız sorgulamaların asla zaman kaybı olduğunu düşünmüyorum. Elinizdeki aracı daha iyi tanımaya çalışmanız çok hoş.
Hocam şimdi bir veri setimiz olur ya satır ve sütunlarına erişemek içinde df.Loc kllanılır. Kaynak kodu incelemenin öğrenim amacı olabilir ama genel olarak bence derinlere inmenin bir anlamı yok doğrudan tabii mülekata girmeyecekseniz.
 
Hocam şimdi bir veri setimiz olur ya satır ve sütunlarına erişemek içinde df.Loc kllanılır.
Onu anladim hocam kullaniyorum zaten ben calisma mantigini soruyorum.

Kaynak kodu incelemenin öğrenim amacı olabilir ama genel olarak bence derinlere inmenin bir anlamı yok doğrudan tabii mülekata girmeyecekseniz.
Haklisiniz bu konuda ama rahat edemiyorum az cok fikrim olmadan. Tabii ki full kodu ezberleyemem ama sey diyebilmem lazim bence; "bu çalışıyor çünkü bunu çağırınca şuna erişiyor vb vb"
 
Hocam veri setini Data Frame kütüphanesi belleğe yerleştiriyor, onları bu komut ile geziyorsun. Çalışma mantığı böyle yani.

Kısaca Ram içinde ayrılan alanı, bu komutun sytaxlari ile yapıyorsun.
Bahsettiğim şu. Örneğin bir komut daha var series.str diye. Anladigim kadarı ile bu str series objesi icinde bir String classina ait bir obje ve o obje uzerinden islemler yapılıyor. Bu tarz çalışma mantığını soruyorum.
 
Bahsettiğim şu. Örneğin bir komut daha var series.str diye. Anladigim kadarı ile bu str series objesi icinde bir String classina ait bir obje ve o obje uzerinden islemler yapılıyor. Bu tarz çalışma mantığını soruyorum.
Hocam koskoca kütüphane. Örnek verirsem mesela dosya okuma yazma için başka objeler kullanıyor.

Ya şimdi bu veri madenciliği dersinde çok kullandım ve çok iyi kullanabiliyorum bu kütüphaneyi ama tam olarak ne demek istediğiniz anlamadım.

Genel bir programlama yaparken obje ve obje yöneticisi sınıfları olur. Böyle bir şey mi?
 
df.loc[] bir fonksiyon mu?

VS Code'da Ctrl'ye basılı tutup tıklarsak şu çıkıyor karşımıza:

1720453628698.png


Görüldüğü üzere @property decoratorıyla decorate edilmiş. Burada ben de hakim olmadığım için detaya giremeyeceğim.

Sorunuzun cevabı "yesn't" gibi geldi bana: Hem evet hem hayır.

Köşeli parantezin nasıl çalıştığına dair şuradaki ilk cevapta güzel bir açıklama yapılmış:


Şöyle ki siz bir sınıfın __getitem__ metodunu yazarsanız köşeli parantezi tıpkı normal parantezle fonksiyon çağırırmışçasına kullanabiliyorsunuz: x = obje[...]. Üzerine __setitem__ metodu da obje[...] = 1 gibi atamalar yapmanıza olanak tanıyor. df.loc'un döndürdüğü şey bir _LocIndexer nesnesi ve bu _LocIndexer sınıfında -daha doğrusu türediği _LocationIndexer sınıfında- bu iki metot yazılmış, bu sayede df.loc[...] çalışıyor. Dikkat edin ki burada köşeli parantezle loc ayrı şeyler yani direkt df.loc da yazabilirsiniz, her ne kadar anlamsız olursa da:

1720454498047.png



Ve sizce bu şekilde iyice öğrenmek doğru mu yoksa zaman kaybı mı?

İrdelemenize bayıldım. Çalışma mantığını kavramak adına yaptığınız sorgulamaların asla zaman kaybı olduğunu düşünmüyorum. Elinizdeki aracı daha iyi tanımaya çalışmanız çok hoş.
 
Çözüm
VS Code'da Ctrl'ye basılı tutup tıklarsak şu çıkıyor karşımıza:

Eki Görüntüle 2245844

Görüldüğü üzere @property decoratorıyla decorate edilmiş. Burada ben de hakim olmadığım için detaya giremeyeceğim.

Sorunuzun cevabı "yesn't" gibi geldi bana: Hem evet hem hayır.

Köşeli parantezin nasıl çalıştığına dair şuradaki ilk cevapta güzel bir açıklama yapılmış:


Şöyle ki siz bir sınıfın __getitem__ metodunu yazarsanız köşeli parantezi tıpkı normal parantezle fonksiyon çağırırmışçasına kullanabiliyorsunuz: x = obje[...]. Üzerine __setitem__ metodu da obje[...] = 1 gibi atamalar yapmanıza olanak tanıyor. df.loc'un döndürdüğü şey bir _LocIndexer nesnesi ve bu _LocIndexer sınıfında -daha doğrusu türediği _LocationIndexer sınıfında- bu iki metot yazılmış, bu sayede df.loc[...] çalışıyor. Dikkat edin ki burada köşeli parantezle loc ayrı şeyler yani direkt df.loc da yazabilirsiniz, her ne kadar anlamsız olursa da:





İrdelemenize bayıldım. Çalışma mantığını kavramak adına yaptığınız sorgulamaların asla zaman kaybı olduğunu düşünmüyorum. Elinizdeki aracı daha iyi tanımaya çalışmanız çok hoş.
Hocam valla mukemmelsiniz ChatGPT anlatamadi siz anlattiniz tesekkur ederim anladim simdi tamamen.
 

Technopat Haberler

Geri
Yukarı