[Python Library Series] Pandas Tutorial For Beginners Part 2 - Viblo
Có thể bạn quan tâm
Ở 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
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: int64Removing 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_incomeLú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: int64Summary
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
- Applied Data Science with Python - Coursera
- 100 Days of Code: The Complete Python Pro Bootcamp for 2022 - Udemy
- Pandas Tutorial - W3School
- Python Pandas Tutorial: A Complete Introduction for Beginners
Từ khóa » Xóa Cột Trong Python
-
Xóa Cột Khỏi Pandas DataFrame Theo Tên Cột? - HelpEx
-
Python — Xóa Cột Khỏi DataFrame - Wake-up
-
Python — Làm Cách Nào để Xóa Các Cột Trong Tệp CSV?
-
[Series Pandas DataFrame] Phân Tích Dữ Liệu Cùng Pandas (Phần 4)
-
Làm Cách Nào để Bạn Xóa Hàng Tên Cột Khỏi A Pandas DataFrame?
-
Chi Tiết Bài Học 6. Làm Quen Với Dataframe Qua Một Số Thao Tác Trên ...
-
Xóa Cột Trong Ma Trận Với ray - Desktop Of ITers
-
Xử Lý Các ô Dữ Liệu Trống Với Python
-
Làm Thế Nào để Loại Bỏ Cột Hoặc Biến Trong R?
-
8 Làm Sạch Số Liệu Và Các Hàm Quan Trọng
-
Cách Sử Dụng Hàm Pandas Drop () Trong Python [Hướng Dẫn Hữu ích]
-
Xóa Phần Tử Trong List Python (del, Pop, Remove, Clear)
-
Intro To Data Structures — Pandas 1.4.3 Documentation
-
Thư Viện Pandas Trong Python - Lập Trình Không Khó