Panduan Lengkap untuk Pandas DataFrame dengan kasus penggunaan waktu nyata – Menuju AI

Panduan Lengkap untuk Pandas DataFrame dengan kasus penggunaan waktu nyata – Menuju AI

Pengarang: Muttineni Sai Rohith

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Panduan Lengkap untuk Kerangka Data Pandas Dengan Kasus Penggunaan Waktu Nyata

Setelah Seri Pyspark saya — di mana sebagian besar pembaca tertarik pada Pyspark Dataframe dan Pyspark RDD, saya mendapat saran dan permintaan untuk menulis di Pandas DataFrame, Sehingga orang dapat membandingkan antara Pyspark dan Pandas bukan dalam hal konsumsi tetapi dalam istilah Sintaks. Jadi hari ini di artikel ini, kita akan berkonsentrasi pada fungsionalitas Pandas DataFrame menggunakan Titanic Dataset.

Panda merujuk ke Data Panel/ Analisis Data Python. Secara umum, Pandas adalah pustaka python yang digunakan untuk bekerja dengan kumpulan data.

DataFrame di pandas adalah struktur data dua dimensi atau tabel dengan baris dan kolom. DataFrames menyediakan fungsi untuk membuat, menganalisis, membersihkan, menjelajahi, dan memanipulasi data.

Sumber: pandas.pydata.org

Instalasi:

pip install panda

Mengimpor panda:

impor panda sebagai pd
cetak(pd.__versi__)

Ini akan mencetak versi Pandas jika instalasi Pandas berhasil.

Membuat DataFrame:

Membuat DataFrame kosong —

df=pd.DataFrame()
df.head(5) # mencetak 5 baris pertama di DataFrame

Membuat DataFrame dari dict—

karyawan = {‘Nama’:[‘chandu’,’rohith’,’puppy’],’Usia’:[26,24,29],’gaji’:[180000,130000,240000]} df = pd.DataFrame(karyawan)
df.head()
Sumber: Keluaran

Membuat Dataframe dari daftar daftar —

karyawan = [[‘chandu’,26,180000], [‘rohith’, 24, 130000],[‘puppy’, 29 ,240000]]df = pd.DataFrame(karyawan, kolom=[“Name”,”Age”,”Salary”])
df.head()
Sumber: Keluaran

Mengimpor data dari File CSV yang disebutkan di sini.

df = pd.read_csv(“/content/titanic_train.csv”) df.head(5)
Sumber: Data dari Dataset Titanic

Seperti yang ditunjukkan di atas, df.head(n) akan mengembalikan n baris pertama dari DataFrame sementara df.tail(n) akan mengembalikan n baris terakhir dari DataFrame.

print(df.shape) #mencetak bentuk DataFrame – baris * kolom print(df.columns) #mengembalikan nama kolom
Sumber: Keluaran

value_counts()— mengembalikan nilai unik dengan jumlah mereka di kolom tertentu.

df[“Embarked”].nilai_jumlah()
Sumber: Keluaran

df.describe() — Mendapatkan informasi tentang semua kolom numerik di DataFrame

df.deskripsi()
Sumber: Keluaran

df.info() — mengembalikan jumlah dan tipe data semua kolom di DataFrame

df.info()
Sumber: Keluaran

Seperti yang terlihat di atas, Ada hitungan Umur dan Kabin kurang dari 891, jadi mungkin ada nilai yang hilang di kolom tersebut. Kita juga bisa melihat dtype kolom di DataFrame.

Menangani Nilai yang Hilang

Mendapatkan hitungan Nilai yang hilang —

df.isnull().sum()
Sumber: Keluaran

Seperti yang terlihat di atas, kolom “Usia”, “Kabin” dan “Memulai” memiliki nilai yang hilang.

Untuk mendapatkan persentase nilai yang hilang —

df.isnull().sum() / df.shape[0] * 100
Sumber: Keluaran

Seperti yang kita lihat, persentase nilai yang hilang dari Kabin lebih dari 75%, jadi mari kita tinggalkan kolomnya.

df=df.jatuhkan([‘Cabin’],sumbu=1)

Perintah di atas digunakan untuk menjatuhkan kolom tertentu dari DataFrame.

Menghitung Nilai yang Hilang

Mari kita hitung nilai yang hilang di kolom Usia dengan Nilai rata-rata.

df[‘Age’].fillna(df[‘Age’].mean(), di tempat=Benar)

Dan hubungkan nilai yang hilang dalam kolom Embarked dengan Nilai Mode.

df[‘Embarked’].fillna(df[‘Embarked’].mode().item(), di tempat=Benar)

Dalam contoh di atas, .item() digunakan saat kita berurusan dengan kolom string. Saya pikir semua Nilai yang hilang ditangani, mari kita periksa —

Sumber: Keluaran

Mengganti Nama Kolom

df=df.rename(columns={‘Sex’:’Gender’,’Name’:’Full Name’})
df.head()
Sumber: Keluaran

Menambahkan/Memodifikasi Kolom

df[‘last_name’]=df[‘Full Name’].apply(lambda x: x.split(‘,’)[0]) df[‘first_name’]=df[‘Full Name’].apply(lambda x: ‘ ‘.join(x.split(‘,’)[1:])) df.head(5)
Sumber: Keluaran

Menambahkan Baris — kami menggunakan metode df.append() untuk menambahkan baris

row=dict({‘Age’:24,’Full Name’:’Rohith’,’Survived’:’Y’}) df=df.append(row,ignore_index=True) df.tail()
Sumber: Keluaran

Baris baru dibuat, dan nilai NaN diinisialisasi untuk kolom tanpa Nilai

menggunakan metode loc():

df.loc[len(df.index)]= baris
df.ekor()

Menghapus Baris

menggunakan metode df.index() —

df=df.drop(df.indeks[-1],axis=0) # Menghapus baris terakhir
df.head()

Kolom Pengkodean

Untuk sebagian besar algoritme pembelajaran mesin, kita harus memiliki data numerik alih-alih Data dalam format String. Jadi Encoding data adalah suatu keharusan operasi.

df[‘Gender’]=df[‘Gender’].map({“male”:’0′,”female”:”1″}) df.head(5)
Sumber: Keluaran

Karena proses ini menjadi sibuk untuk semua kolom jika kita menggunakan metode di atas, ada banyak metode seperti LabelEncoder, OneHotEncoder, dan MultiColumnLabelEncoder yang tersedia untuk Encode DataFrames. Mereka dijelaskan dengan jelas dalam Pasal di bawah ini —

Metode Pengkodean untuk menyandikan data Kategoris dalam Pembelajaran Mesin

Memfilter Data

Memilih data hanya ketika usia lebih besar dari 25.

df[df[“Age”]> 25].head(5)
Sumber: Keluaran

Demikian pula kita dapat menggunakan operasi > , < dan ==.

df[(df[“Age”]< 25) & (df["Gender"]="1")].head(5)

memilih data ketika Age kurang dari 25 dan Gender adalah 1. Dengan cara di atas, kita juga dapat memfilter beberapa kolom.

terapkan() fungsi:

Mari kita asumsikan bahwa orang yang berusia kurang dari 15 tahun dan lebih dari 60 tahun akan diselamatkan terlebih dahulu. Mari kita buat kolom save_first menggunakan fungsi apply().

def save_first(umur):
jika usia<15:
kembali 1
usia elif>=15 dan usia<60:
kembali 0
usia elif>=60:
kembali 1 df[‘save_first’]=df[‘Age’].apply(lambda x: save_first(x))

Memilih Kolom dan Baris tertentu:

df_1 = df[[‘Age’,’Survived’,’Gender’]]df_1.head()
Sumber: Keluaran

using .iloc() — Menggunakan indeks numerik untuk mengembalikan baris dan kolom tertentu di DataFrame

df_2 = df.iloc[0:100,:]
df_2.head()

mengembalikan 100 baris pertama dan semua kolom di DataFrame

df_2 = df.iloc[0:100, [0,1,2]]df_2.head()

mengembalikan 100 baris pertama dan 3 kolom pertama di DataFrame

Sumber: Keluaran

.loc() fungsi — mirip dengan .iloc() tetapi menggunakan Nama Kolom bukan indeks numerik.

df_2 = df.loc[0:100, [‘Age’,’Survived’,’Gender’]]df_2.head()
Sumber: Keluaran

Penyortiran

Kita dapat melakukan operasi pengurutan di DataFrame menggunakan metode sort_values().

df=df.sort_values(oleh=[‘Age’],naik=Salah) df.head()
Sumber: Keluaran

Kami juga dapat menggunakan beberapa kolom — pengurutan pertama berdasarkan kolom pertama, diikuti oleh kolom kedua.

df=df.sort_values(oleh=[‘Age’, ‘Survived’],naik=Salah) df[15:20]
Sumber: Keluaran

Bergabung

Bergabung tidak lain adalah menggabungkan beberapa DataFrames berdasarkan kolom tertentu.

Mari kita lakukan 5 jenis Gabung — silang, dalam, kiri, kanan, dan luar

cross join — juga dikenal sebagai cartesian join, yang mengembalikan semua kombinasi baris dari setiap tabel.

cross_join = pd.merge( df1 , df2 ,how=’cross’)

inner join — hanya mengembalikan baris yang memiliki nilai yang cocok di kedua Dataframe.

inner_join = pd.merge( df1 , df2 ,how=’inner’, on=’column_name’)

join kiri — mengembalikan semua baris dari DataFrame pertama, jika tidak ada nilai yang cocok, maka ia mengembalikan Nilai null untuk DataFrame Kedua

left_join = pd.merge( df1 , df2 ,how=’left’, on=’column_name’)

right join — mengembalikan semua baris dari Second DataFrame. Jika tidak ada nilai yang cocok, maka ia mengembalikan Nilai nol untuk DataFrame pertama

right_join = pd.merge( df1 , df2 ,how=’right’, on=’column_name’)

outer join — mengembalikan semua baris dari DataFrames pertama dan Kedua. Jika tidak ada kecocokan di Dataframe pertama, Nilai di DataFrame Kedua akan menjadi null dan ViceVersa

outer_join = pd.merge( df1 , df2 ,how=’outer’, on=’column_name’)

GrupDengan()

Metode ini digunakan untuk mengelompokkan kerangka data berdasarkan beberapa kolom.

grup = df.groupby([‘Survived’]) groups.get_group(1)

get_group() metode digunakan untuk mendapatkan data milik kelompok tertentu.

GroupBy() umumnya digunakan dengan fungsi matematika seperti mean(), min(), max() dll,

kelompok[‘Age’].berarti()
Sumber: Grup keluaran[‘Age’].menghitung()
Sumber: Grup keluaran[‘Age’].min()
kelompok[‘Age’].maks()

Menggunakan fungsi .agg()

impor numpy sebagai np group_agg =df.groupby([‘Survived’]).agg({‘Usia’:lambda x: np.mean(x)}) group_agg.head()
Sumber: Keluaran

Jadi saya pikir saya telah membahas sebagian besar konsep dasar yang terkait dengan Pandas DataFrame.

Selamat Coding…

Panduan Lengkap untuk Pandas DataFrame dengan kasus penggunaan waktu nyata awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Scott Anderson