
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