- vừa được xem lúc

[Python Library Series] Pandas Tutorial for Beginners Part 2

0 0 27

Người đăng: Tinh Nguyen

Theo Viblo Asia

Part 1 chúng ta đã đi qua các bước hướng dẫn cách cài đặt Pandas, cách tạo và xem thông tin của một Dataframe. Như đã đề cập ở phần trước thì nội dung trong Part 2 này giúp chúng ta làm quen các thao tác với Pandas để làm sạch và xử lý dữ liệu.

Mình sẽ thực hiện xử lý với một bảng dữ liệu được lấy từ Kaggle . Trước hết ta cần phải đọc được dữ liệu từ file .csv và có một cái nhìn bao quát về nó.

import pandas as pd
df = pd.read_csv('../input/customer-personality-analysis/marketing_campaign.csv', sep='\t')
df.head()

Sử dụng lệnh .info() để biết được những thông tin cần thiết của bộ dữ liệu này như:

  • Số lượng dòng: 2240
  • Số lượng cột: 29
  • Tên cột
  • Loại dữ liệu và số lượng hiện có của mỗi cột
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2240 entries, 0 to 2239
Data columns (total 29 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ID 2240 non-null int64 1 Year_Birth 2240 non-null int64 2 Education 2240 non-null object 3 Marital_Status 2240 non-null object 4 Income 2216 non-null float64 5 Kidhome 2240 non-null int64 6 Teenhome 2240 non-null int64 7 Dt_Customer 2240 non-null object 8 Recency 2240 non-null int64 9 MntWines 2240 non-null int64 10 MntFruits 2240 non-null int64 11 MntMeatProducts 2240 non-null int64 12 MntFishProducts 2240 non-null int64 13 MntSweetProducts 2240 non-null int64 14 MntGoldProds 2240 non-null int64 15 NumDealsPurchases 2240 non-null int64 16 NumWebPurchases 2240 non-null int64 17 NumCatalogPurchases 2240 non-null int64 18 NumStorePurchases 2240 non-null int64 19 NumWebVisitsMonth 2240 non-null int64 20 AcceptedCmp3 2240 non-null int64 21 AcceptedCmp4 2240 non-null int64 22 AcceptedCmp5 2240 non-null int64 23 AcceptedCmp1 2240 non-null int64 24 AcceptedCmp2 2240 non-null int64 25 Complain 2240 non-null int64 26 Z_CostContact 2240 non-null int64 27 Z_Revenue 2240 non-null int64 28 Response 2240 non-null int64 dtypes: float64(1), int64(25), object(3)
memory usage: 507.6+ KB

Ngoài ra ta có thể xem thêm thống kê bằng lệnh .describe() hoặc .describe().T

1. Handling duplicates

Thật may mắn khi các dòng trong bộ dữ liệu này không trùng nhau. Tuy nhiên đối với bộ dữ liệu khác ta cần phải kiểm tra kĩ điều này. Đôi khi chính các giá trị trùng lắp này lại cho bạn một kết quả không mong muốn tí nào ??

Bạn cảm thấy dữ liệu bị trùng không mang lại lợi ích gì cả? Đơn giản ta chỉ việc xóa những dòng bị trùng này bằng lệnh .drop_duplicates(inplace = True)

Note: Khi dùng cụm (inplace = True) thì có nghĩa dữ liệu sẽ được thay đổi trực tiếp trên chính dataframe ban đầu. Nếu bạn muốn thay đổi và lưu thành một dataframe mới thì nên xóa cụm đó đi nhé!

2. Cleaning empty cells

Đôi khi, dữ liệu bị thiếu cũng có thể góp phần làm cho kết quả bị sai lệch. Để thống kê số lượng bị rỗng ta có thể dùng .isnull().sum(). Sau đó ta có 2 cách để xử lý lượng data bị thiếu này, hoặc xóa bỏ cả dòng chứa thông tin bị thiếu đó, hoặc điền vào các ô đó bằng các giá trị mean, median, mode tùy vào ý nghĩa của chúng.

ID 0
Year_Birth 0
Education 0
Marital_Status 0
Income 24
Kidhome 0
Teenhome 0
Dt_Customer 0
Recency 0
MntWines 0
MntFruits 0
MntMeatProducts 0
MntFishProducts 0
MntSweetProducts 0
MntGoldProds 0
NumDealsPurchases 0
NumWebPurchases 0
NumCatalogPurchases 0
NumStorePurchases 0
NumWebVisitsMonth 0
AcceptedCmp3 0
AcceptedCmp4 0
AcceptedCmp5 0
AcceptedCmp1 0
AcceptedCmp2 0
Complain 0
Z_CostContact 0
Z_Revenue 0
Response 0
dtype: int64

Removing null values

Để xóa hoàn toàn cả dòng chứa thông tin bị thiếu, bạn chỉ việc dùng .dropna(inplace=True). Tác dụng khi dùng inplace=True ở đây cũng giống như ở mục 1, dữ liệu sẽ được thay đổi trực tiếp trên chính dataframe ban đầu của bạn. Trường hợp bạn cần xóa cột chứa ô rỗng thì sử dụng .dropna(axis=1) .

Dữ liệu có giá trị rất lớn đối với mọi dự án. Bạn chỉ nên xóa bỏ dữ liệu rỗng khi bản thân thật sự hiểu về chúng và số lượng missing data rất ít.

Imputation

Việc thay các ô rỗng bằng các giá trị trung bình (mean), giá trị trung vị (median), giá trị xuất hiện nhiều (mode) sẽ ít rủi ro hơn so với việc bỏ chúng đi hoàn toàn.

Ví dụ bạn cần điền vào các ô rỗng ở cột Income bằng các giá trị mean, ta cần tính giá trị mean trước

mean_income = df["Income"].mean()
mean_income

Lúc này mean_income có giá trị là 52247.25135379061. Tiếp theo ta điền giá trị mean này vào các ô chứa giá trị rỗng.

df.fillna(mean_income, inplace=True)

Ta cùng kiểm tra lại xem còn giá trị nào rỗng không nhé

ID 0
Year_Birth 0
Education 0
Marital_Status 0
Income 0
Kidhome 0
Teenhome 0
Dt_Customer 0
Recency 0
MntWines 0
MntFruits 0
MntMeatProducts 0
MntFishProducts 0
MntSweetProducts 0
MntGoldProds 0
NumDealsPurchases 0
NumWebPurchases 0
NumCatalogPurchases 0
NumStorePurchases 0
NumWebVisitsMonth 0
AcceptedCmp3 0
AcceptedCmp4 0
AcceptedCmp5 0
AcceptedCmp1 0
AcceptedCmp2 0
Complain 0
Z_CostContact 0
Z_Revenue 0
Response 0
dtype: int64

Summary

Part 2 này đã giúp chúng ta có được hướng đi ban đầu trong việc tiếp cận với dữ liệu dạng bảng. Tuy nhiên bạn cần tìm hiểu tiếp để có được quyết định tốt nhất đối với từng kiểu dữ liệu khác nhau.

Hẹn gặp các bạn ở những bài chia sẻ tiếp theo nhé!

Tài liệu tham khảo

  1. Applied Data Science with Python - Coursera
  2. 100 Days of Code: The Complete Python Pro Bootcamp for 2022 - Udemy
  3. Pandas Tutorial - W3School
  4. Python Pandas Tutorial: A Complete Introduction for Beginners

Bình luận

Bài viết tương tự

- vừa được xem lúc

Lớp trong Python

. Hôm ni, mình học tiếp về bạn “Lớp(class) trong python”, bài blog tiếp theo nằm trong series “Khám phá Đại Bản Doanh Python”(nội dung trong bài series này từ chủ yếu mình lấy từ python.org rồi viết lại hoặc dịch lại theo ngôn ngữ của mình).

0 0 17

- vừa được xem lúc

Tổng quan về Recommender System [Recommender System cơ bản - Phần 1]

Giới thiệu. Recommender System là một trong những ứng dụng phổ biến nhất của khoa học dữ liệu ngày nay.

0 0 354

- vừa được xem lúc

Gotchas trong Python

Python là một ngôn ngữ quen thuộc của hầu hết những người mới lập trình. Phần lớn bởi vì Python khá đơn giản trong cấu trúc, có nhu cầu cao và đặc biệt Python là một ngôn ngữ được ứng dụng cực kì rộng

0 0 22

- vừa được xem lúc

Hướng dẫn cơ bản framework FastAPI từ A -> Z (Phần 1)

Lời mở đầu. Chào các bạn, hôm nay tôi xin giới thiệu với các bạn về 1 framework API mà tôi mới vọc vạch mấy tuần trước.

0 0 96

- vừa được xem lúc

[Python Library Series] Pandas Tutorial for Beginners Part 1

Pandas là thư viện rất quan trọng đối với các lập trình viên Python hiện nay. Thư viện này được ví như backbone của hầu hết các dự án dữ liệu. . Note:.

0 0 32

- vừa được xem lúc

Python thực chiến cùng Mow - Bài 1 - Khai báo biến & Nhập - Xuất dữ liệu cơ bản

Bài trước Mow đã nói sương sương về <a href="https://mowblog.hashnode.

0 0 21