Tiga Metode Pandas yang Mungkin Tidak Anda Ketahui

Penulis artikel, terjemahan yang kami terbitkan hari ini, mengatakan bahwa ketika ia mengetahui tentang metode perpustakaan Pandas yang ingin ia bicarakan di sini, ia merasa seperti seorang programmer yang sama sekali tidak kompeten. Mengapa Faktanya adalah ketika dia menulis kode sebelumnya, dia terlalu malas untuk melihat ke dalam mesin pencari dan mencari tahu apakah ada beberapa cara efektif untuk menyelesaikan beberapa masalah. Akibatnya, ia bahkan tidak tahu tentang keberadaan sejumlah metode Pandas yang sangat berguna. Tanpa menggunakan metode ini, ia masih dapat menerapkan logika yang diperlukan, tetapi ini membutuhkannya beberapa jam kerja, yang membuatnya gugup. Dan tentu saja, di sepanjang jalan, dia menulis banyak kode yang tidak perlu. Dia menyiapkan artikel ini untuk mereka yang tidak ingin berada dalam situasinya.



Metode idxmin () dan idxmax ()


Saya sudah menulis tentang metode idxmin() dan idxmax() , tetapi jika saya tidak membicarakannya di sini, tidak akan mudah bagi Anda untuk memahami apa yang akan kita bahas selanjutnya.

Metode-metode ini, jika Anda menggambarkannya secara singkat, kembalikan indeks (posisi pointer) untuk catatan yang diinginkan. Misalkan saya membuat objek Series Panda berikut.

  x = pd.Series ([ 1, 3, 2, 8, 124, 4, 2, 1 ]) 

Saya perlu menemukan indeks elemen minimum dan maksimum. Tentu saja, tidak sulit untuk mencari tahu hanya dengan melihat deskripsi objek, tetapi dalam proyek nyata tidak pernah (persis seperti itu - "tidak pernah") tidak memenuhi set data yang terdiri dari sejumlah kecil elemen.

Apa yang harus dilakukan Gunakan metode idxmin() dan idxmax() . Begini tampilannya:



Dengan menggunakan metode ini, Anda tidak boleh lupa bahwa mereka mengembalikan indeks kemunculan pertama dari nilai minimum atau maksimum.

Metode Ne ()


Metode ne() adalah penemuan besar bagi saya. Beberapa waktu yang lalu, saya bekerja dengan data time series dan mengalami masalah ketika pengamatan pertama adalah 0.

Bayangkan Anda membeli sesuatu, tetapi tidak mengkonsumsinya untuk jangka waktu tertentu. Apa yang Anda beli adalah yang Anda inginkan, tetapi karena Anda tidak menggunakannya, tingkat konsumsi ini pada tanggal tertentu adalah 0. Karena saya tertarik pada data tentang konsumsi yang diperoleh ketika penggunaan sebenarnya dari apa yang dimulai “ dibeli ”, ternyata metode ne() tepat seperti yang saya butuhkan.

Pertimbangkan skenario berikut. Kami memiliki objek DataFrame Pandas, yang berisi hasil dari beberapa pengamatan, yang, di bagian atas daftar, diwakili oleh nilai 0.
 df = pd.DataFrame() 



Metode ne() akan mengembalikan True hanya jika nilai saat ini bukan yang ditentukan ketika metode ini dipanggil (misalnya, ketika dipanggil, nilai 0 dapat ditentukan), jika tidak maka akan mengembalikan False :
 df['X'].ne(0) 


Metode ini sendiri tidak dapat disebut sangat berguna. Sekarang ingat bagaimana di awal artikel saya mengatakan bahwa untuk memahami artikel Anda perlu membiasakan diri dengan metode idxmax() . Saya tidak bercanda saat itu. Anda dapat melampirkan panggilan idxmax() ke panggilan ne() . Hasilnya adalah sebagai berikut:
 df['X'].ne(0).idxmax() 


Ini memberi tahu kita bahwa hasil pengamatan non-nol pertama ada di posisi 6. Sekali lagi, ini mungkin tidak tampak seperti penemuan yang penting. Tetapi yang paling penting di sini adalah bahwa informasi ini dapat digunakan untuk memilih subset dari objek DataFrame dan untuk menampilkan hanya nilai-nilai yang muncul mulai dari posisi yang terdeteksi:
 df.loc[df['X'].ne(0).idxmax():] 


Teknik ini sangat berguna dalam banyak situasi di mana Anda harus bekerja dengan data deret waktu.

Metode Nsmallest () dan nlargest ()


Saya menduga bahwa hanya setelah melihat nama-nama metode ini, Anda dapat menebak tujuannya. Misalkan saya membuat DataFrame berikut:
 df = pd/DataFrame({ 'Name': ['Bob', 'Mark', 'Steph', 'Jess', 'Becky'], 'Points': [55, 98, 46, 77, 81] }) 


Untuk membuatnya lebih menarik, anggaplah inilah hasil ujian yang beberapa siswa lewati. Kami ingin menemukan tiga siswa yang melakukan ujian terburuk:
 df.nsmallest(3, 'Points') 


Atau - cari tahu siapa yang berada di tiga teratas:
 df.nlargest(3, 'Points') 


Metode-metode ini adalah pengganti yang sangat baik untuk metode seperti sort_values() .

Ringkasan


Di sini kami melihat beberapa metode Pandas yang berguna. Bagi mereka yang tahu tentang mereka, aplikasi mereka mungkin tampak benar-benar alami, tetapi bagi mereka yang baru belajar tentang mereka, mereka mungkin terlihat seperti temuan nyata. Kami berharap mereka melayani Anda dengan baik.

Pembaca yang budiman! Tahu beberapa metode Pandas yang berguna yang mungkin tidak diketahui orang lain?


Source: https://habr.com/ru/post/id479276/


All Articles