panda

Tutorial Pandas di Python

Tutorial Pandas di Python
Dalam pelajaran ini mengenai perpustakaan Python Pandas, kita akan melihat struktur data yang berbeza yang disediakan oleh pakej Python ini untuk fungsi pemprosesan data yang pantas yang cekap untuk data dinamik dan menguruskan operasi yang kompleks berbanding data multi-dimensi. Dalam pelajaran ini, kita akan meliputi:

Ini kelihatan seperti banyak yang perlu dilindungi. Mari kita mulakan sekarang.

Apa itu pakej Python Pandas?

Menurut laman utama Pandas: panda adalah sumber terbuka, perpustakaan berlesen BSD yang menyediakan struktur data berprestasi tinggi, mudah digunakan dan alat analisis data untuk bahasa pengaturcaraan Python.

Salah satu perkara paling menarik tentang Pandas ialah ia menjadikan data membaca dari format data biasa seperti CSV, SQL dll. sangat mudah yang menjadikannya sama dapat digunakan dalam aplikasi gred pengeluaran atau hanya beberapa aplikasi demo.

Pasang Python Pandas

Sekadar catatan sebelum memulakan proses pemasangan, kami menggunakan persekitaran maya untuk pelajaran ini yang kami buat dengan arahan berikut:

panda python -m virtualenv
sumber panda / tong / aktifkan

Setelah persekitaran maya aktif, kita dapat memasang perpustakaan panda dalam env maya sehingga contoh yang kita buat seterusnya dapat dilaksanakan:

pip pasang panda

Atau, kita boleh menggunakan Conda untuk memasang pakej ini dengan arahan berikut:

conda pasang panda

Kami melihat sesuatu seperti ini semasa kami melaksanakan perintah di atas:

Setelah pemasangan selesai dengan Conda, kami akan dapat menggunakan pakej dalam skrip Python kami sebagai:

import panda sebagai pd

Mari mula menggunakan Pandas dalam skrip kami sekarang.

Membaca fail CSV dengan Pandas DataFrames

Membaca fail CSV mudah dilakukan dengan Pandas. Untuk demonstrasi, kami telah membina fail CSV kecil dengan kandungan berikut:

Nama, RollNo, Tarikh Kemasukan, Kenalan Kecemasan
Shubham, 1,20-05-2012,9988776655
Gagan, 2,20-05-2009,8364517829
Oshima, 3,20-05-2003,5454223344
Vyom, 4,20-05-2009,1223344556
Ankur, 5,20-05-1999,9988776655
Vinod, 6,20-05-1999,9988776655
Vipin, 7,20-05-2002,9988776655
Ronak, 8,20-05-2007,1223344556
DJ, 9,20-05-2014,9988776655
VJ, 10,20-05-2015,9988776655

Simpan fail ini dalam direktori yang sama dengan skrip Python. Setelah fail ada, tambahkan potongan kod berikut dalam fail Python:

import panda sebagai pd
pelajar = pd.read_csv ("pelajar.csv ")
pelajar.kepala ()

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Fungsi head () di Pandas dapat digunakan untuk menunjukkan contoh data yang ada di DataFrame. Tunggu, DataFrame? Kami akan mengkaji lebih banyak mengenai DataFrame di bahagian seterusnya tetapi hanya memahami bahawa DataFrame adalah struktur data n-dimensi yang dapat digunakan untuk menahan dan menganalisis atau mengoperasikan kompleks pada sekumpulan data.

Kita juga dapat melihat berapa baris dan lajur yang dimiliki data semasa:

pelajar.bentuk

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Perhatikan bahawa Pandas juga mengira bilangan baris bermula dari 0.

Adalah mungkin untuk mendapatkan hanya lajur dalam senarai dengan Panda. Ini dapat dilakukan dengan bantuan pengindeksan di Pandas. Mari lihat coretan kod pendek untuk perkara yang sama:

student_names = pelajar ['Nama']
nama_pelajar

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Tetapi itu tidak kelihatan seperti senarai, betul? Kita perlu memanggil fungsi untuk menukar objek ini menjadi senarai:

nama_pelajar = nama_pelajar.tolok ()
nama_pelajar

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Hanya untuk maklumat tambahan, kami dapat memastikan bahawa setiap elemen dalam senarai itu unik dan kami hanya memilih elemen yang tidak kosong dengan menambahkan beberapa pemeriksaan mudah seperti:

student_names = pelajar ['Nama'].dropna ().unik ().tolok ()

Dalam kes kami, output tidak akan berubah kerana senarai sudah tidak mengandung nilai busuk.

Kami juga dapat membuat DataFrame dengan data mentah dan meneruskan nama lajur dengannya, seperti yang ditunjukkan dalam coretan kod berikut:

my_data = pd.Rangka Data (
[
[1, "Chan"],
[2, "Smith"],
[3, "Winslet"]
],
lajur = ["Kedudukan", "Nama Akhir"]
)
my_data

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Memotong DataFrames

Memecah DataFrames untuk mengekstrak baris dan lajur yang dipilih sahaja adalah fungsi penting untuk memberi perhatian kepada bahagian data yang diperlukan yang perlu kita gunakan. Untuk ini, Pandas membolehkan kita memotong DataFrame sesuka hati dengan pernyataan seperti:

Pada bahagian sebelumnya, kita telah melihat pengindeksan dan pemotongan dengan nama lajur dan bukannya indeks. Anda juga boleh mencampurkan potongan dengan nombor indeks dan nama lajur. Mari lihat coretan kod ringkas:

pelajar.loc [: 5, 'Nama']

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Adalah mungkin untuk menentukan lebih daripada satu lajur:

pelajar.loc [: 5, ['Name', 'Emergency Contact']]

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Struktur Data Siri di Pandas

Sama seperti Pandas (yang merupakan struktur data pelbagai dimensi), Seri adalah struktur data satu dimensi di Pandas. Apabila kita mengambil satu lajur dari DataFrame, kita sebenarnya bekerja dengan Siri:

taip (pelajar ["Nama"])

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Kita juga boleh membina Siri kita sendiri, berikut adalah coretan kod yang sama:

siri = pd.Siri (['Shubham', 3.7])
seri

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Seperti yang jelas dari contoh di atas, Siri boleh mengandungi pelbagai jenis data untuk lajur yang sama juga.

Penapis Boolean dalam Pandas DataFrame

Salah satu kebaikan di Pandas adalah bagaimana mengekstrak data dari DataFrame berdasarkan suatu keadaan. Seperti mengekstrak pelajar hanya apabila bilangan gulungannya lebih besar daripada 6:

roll_filter = pelajar ['RollNo']> 6
roll_filter

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Bukan itu yang kita harapkan. Walaupun keluarannya cukup jelas mengenai baris mana yang memenuhi penapis yang kami sediakan tetapi kami masih tidak mempunyai baris yang tepat yang memenuhi penapis tersebut. Ternyata begitu kita boleh menggunakan penapis sebagai indeks DataFrame juga:

pelajar [roll_filter]

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Adalah mungkin untuk menggunakan beberapa keadaan dalam saringan sehingga data dapat disaring pada satu penapis ringkas, seperti:

next_filter = (pelajar ['RollNo']> 6) & (pelajar ['Nama']> 'S')
pelajar [next_filter]

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Mengira Median

Dalam DataFrame, kita dapat menghitung banyak fungsi matematik juga. Kami akan memberikan contoh yang baik untuk mengira median. Median akan dikira untuk tarikh, bukan hanya untuk nombor. Mari lihat coretan kod pendek untuk perkara yang sama:

tarikh = pelajar ['Tarikh Kemasukan'].astype ('datetime64 [ns]').kuantil (.5)
kurma

Setelah kami menjalankan coretan kod di atas, kami akan melihat output berikut:

Kami mencapainya dengan terlebih dahulu mengindeks lajur tarikh yang kami miliki dan kemudian memberikan jenis data ke lajur sehingga Pandas dapat menyimpulkannya dengan betul ketika menerapkan fungsi kuantil untuk mengira tarikh.

Kesimpulannya

Dalam pelajaran ini, kami melihat pelbagai aspek perpustakaan pemprosesan Pandas yang dapat kami gunakan dengan Python untuk mengumpulkan data dari pelbagai sumber ke dalam struktur data DataFrame yang memungkinkan kami beroperasi dengan canggih pada set data. Ini juga membolehkan kita mendapatkan subkumpulan data yang ingin kita kerjakan sebentar dan menyediakan banyak operasi matematik.

Sila kongsi maklum balas anda mengenai pelajaran di Twitter dengan @sbmaggarwal dan @LinuxHint.

Permainan Makmal Apl Oculus Teratas
Sekiranya anda adalah pemilik alat dengar Oculus, maka anda mesti mengetahui tentang memuatkan sideload. Sideloading adalah proses memasang kandungan ...
10 Permainan Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform dominan untuk permainan kerana peratusan besar permainan yang sedang berkembang hari ini untuk meny...
5 Permainan Arcade Terbaik untuk Linux
Pada masa kini, komputer adalah mesin serius yang digunakan untuk permainan. Sekiranya anda tidak dapat memperoleh skor tinggi baru, anda akan tahu ma...