Python có tốt cho việc dọn dẹp dữ liệu không?

Dữ liệu là mạch máu của mọi công ty và trong cài đặt học máy, dữ liệu được tạo từ nhiều nguồn. Làm sạch dữ liệu là rất quan trọng để cài đặt máy học hoạt động chính xác. Nhưng làm thế nào để bạn thực hiện làm sạch dữ liệu?

Trong hướng dẫn này, bạn sẽ tìm hiểu làm sạch dữ liệu là gì và cách làm sạch dữ liệu bằng các công cụ Python để bạn có thể tận hưởng dữ liệu sạch và mới

điều kiện tiên quyết

Hướng dẫn này sẽ là một cuộc biểu tình thực hành. Nếu bạn muốn làm theo, hãy chắc chắn rằng bạn có những điều sau đây

  • Máy Window hoặc Linux – Hướng dẫn này sử dụng Windows 10 21H1 Build 19043
  • Phòng thí nghiệm Jupyter (phiên bản 3. 12. 1 được sử dụng trong hướng dẫn này) và Python 3 trở lên

Có liên quan. Bạn cài đặt Python 3 như thế nào. 6?

  • Tải xuống bộ dữ liệu Pokémon để sử dụng cho bản trình diễn

Nhập dữ liệu Làm sạch Thư viện Python Pandas

Python có một số thư viện tích hợp để giúp làm sạch dữ liệu. Hai thư viện phổ biến nhất là pandas và numpy, nhưng bạn sẽ sử dụng pandas cho hướng dẫn này. Thư viện gấu trúc cho phép bạn làm việc với khung dữ liệu gấu trúc để phân tích và thao tác dữ liệu

Trước khi bạn có thể thực hiện làm sạch dữ liệu bằng gấu trúc Python, trước tiên hãy nhập thư viện gấu trúc và tập dữ liệu của bạn (tệp CSV)

Có liên quan. Trăn 101. Cách quản lý và đọc CSV bằng Python

Khởi chạy JupyterLab của bạn, sau đó kéo và thả bộ dữ liệu Pokémon vào JupyterLab của bạn

Bây giờ, hãy chạy các lệnh bên dưới theo thứ tự để đọc tập dữ liệu và hiển thị bản xem trước của dữ liệu, để bạn có thể kiểm tra xem mình có bất kỳ lỗi nhập nào không

# Import the pandas library and set pd as the standard way 
# to reference pandas.
import pandas as pd
# Read the data from the dataset into your pandas dataframe.
data = pd.read_csv("pokemon.csv")
# Display a preview of the data.
data.head()

Python có tốt cho việc dọn dẹp dữ liệu không?
nhập pokemon. csv vào JupyterLab

Xóa khoảng trắng trong Datasets

Bây giờ bạn đã nhập tập dữ liệu của mình, bạn có thể bắt đầu làm sạch dữ liệu của mình. Có nhiều cách để làm sạch tập dữ liệu của bạn, chẳng hạn như xóa khoảng trắng. Khoảng trắng làm tăng kích thước của tập dữ liệu trong cơ sở dữ liệu của bạn một cách không cần thiết và khiến việc tìm kiếm dữ liệu trùng lặp trở thành một thách thức

1. Kiểm tra tập dữ liệu của bạn nếu có khoảng trắng như những gì bạn thấy trong các cột Tên, Loại và Điểm yếu bên dưới. Bạn sẽ loại bỏ những phần không liên quan này của dữ liệu một cách có hệ thống

Python có tốt cho việc dọn dẹp dữ liệu không?
Xem khoảng trắng trong Dataset

2. Sao chép và dán các mã sau vào trình bao mã của bạn và nhấn tổ hợp phím Shift+Enter để thực thi mã. Mã bên dưới chuyển tên cột tới hàm

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
3 để xóa các khoảng trắng ở đầu và cuối trong tập dữ liệu của bạn

Có liên quan. Bắt đầu. Hàm Python cho người mới

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')

3. Cuối cùng, hãy kiểm tra lại tập dữ liệu của bạn để xác nhận rằng các khoảng trắng đã biến mất tương tự như bên dưới

Python có tốt cho việc dọn dẹp dữ liệu không?
Xác minh các khoảng trắng đã được xóa

Loại bỏ các giá trị trùng lặp

Khoảng trắng không phải là thứ duy nhất bạn cần chú ý trong tập dữ liệu. Với hàng tấn dữ liệu trong tập dữ liệu của bạn, bạn có thể đã bỏ qua một số dữ liệu trùng lặp. Vậy quá trình phát hiện và loại bỏ trùng lặp là gì?

Mỗi mục nhập trong tập dữ liệu của bạn phải có dữ liệu duy nhất trong cột Tên. Nhưng như bạn có thể thấy bên dưới, Blastoise có hai mục, một ở hàng 10 và một ở hàng 11. Vì cột Chiều cao chỉ nên chứa số nên bạn sẽ xóa mục nhập ở hàng 11 có văn bản inch thừa trong cột Chiều cao

Python có tốt cho việc dọn dẹp dữ liệu không?
Xem lại các bản sao trong Bộ dữ liệu

Chạy các lệnh sau để loại bỏ

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
4 trùng lặp đầu tiên và giữ lại lần xuất hiện (
# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
5) cuối cùng

data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)

Như bạn có thể thấy bên dưới, phần trùng lặp trên hàng 10 hiện đã biến mất, vì vậy bạn không phải lo lắng về việc sửa chuỗi "inch" thừa đó nữa

Python có tốt cho việc dọn dẹp dữ liệu không?
Xác minh các bản sao được xóa

Điền vào các giá trị còn thiếu

Cho đến nay, bạn đã xử lý việc loại bỏ dữ liệu dư thừa (khoảng trắng và dữ liệu trùng lặp), nhưng còn dữ liệu bị thiếu thì sao?

Từ thời điểm này, việc điền dữ liệu còn thiếu là rất quan trọng, nếu không bạn sẽ gặp lỗi khi chạy các lệnh trong các phần sau

1. Chạy lệnh

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
7 bên dưới để kiểm tra các giá trị còn thiếu trong tập dữ liệu của bạn

________số 8

Có tổng cộng 151 mục nhập trong bộ dữ liệu. Trong kết quả hiển thị bên dưới, bạn có thể biết rằng ba cột bị thiếu dữ liệu. Cả hai cột Chiều cao và Cân nặng đều có 150 mục nhập và cột Loại chỉ có 149 mục nhập

Python có tốt cho việc dọn dẹp dữ liệu không?
Tìm dữ liệu bị thiếu

2. Tiếp theo, hãy chạy lệnh sau để hiển thị tất cả các mục có ít nhất một (

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
8) dữ liệu bị thiếu
# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
9

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
1

Lưu ý bên dưới rằng các cột Chiều cao, Cân nặng và Loại có giá trị Không phải là Số (NaN). Các giá trị NaN cho biết các cột có dữ liệu rỗng hoặc thiếu

Trong kết quả bên dưới, bạn có thể thấy Golbat thiếu dữ liệu Chiều cao và Cân nặng mà bạn sẽ điền vào trong bước tiếp theo, vì vậy hãy nhớ lưu ý số mục nhập của Golbat (42)

Python có tốt cho việc dọn dẹp dữ liệu không?
Tìm các mục có dữ liệu bị thiếu

3. Tìm kiếm thông tin của Golbat trên trang web Pokémon trên trình duyệt web của bạn. Trong dữ liệu của Golbat bên dưới, bạn có thể thấy giá trị Chiều cao là 5′ 03″ (63 inch), trong khi giá trị Cân nặng là 121. 3 cân Anh. Lưu ý giá trị chiều cao và cân nặng để điền vào dữ liệu còn thiếu cho Golbat trong tập dữ liệu của bạn

Python có tốt cho việc dọn dẹp dữ liệu không?
giá trị chiều cao và cân nặng để điền vào dữ liệu còn thiếu cho Golbat trong tập dữ liệu của bạn

Bây giờ, hãy chạy các lệnh sau để điền dữ liệu còn thiếu của Golbat vào tập dữ liệu của bạn

Cùng một bộ lệnh áp dụng để sửa đổi các giá trị hiện có trong tập dữ liệu

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
2

5. Chạy lệnh

data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)
0 bên dưới, trong đó
data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)
1 là số ID của mục nhập, để liệt kê dữ liệu của mục nhập và kiểm tra bất kỳ giá trị trống nào_______52

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
6

Dưới đây, bạn có thể thấy rằng tất cả dữ liệu của Golbat đều được điền đầy đủ

Python có tốt cho việc dọn dẹp dữ liệu không?
Xem dữ liệu đầu vào

Sau khi điền dữ liệu còn thiếu và vẫn còn thiếu ít nhất một phần tử, bạn nên xóa toàn bộ hàng thiếu dữ liệu khỏi tập dữ liệu

6. Cuối cùng, lặp lại các bước tương tự (ba đến năm) để điền dữ liệu còn thiếu cho các mục nhập khác

Sửa lỗi định dạng

Thay vì thiếu dữ liệu, một tình huống điển hình khác trong tập dữ liệu là lỗi định dạng. Hồ sơ không chính xác có thể gây khó chịu, nhưng đừng lo, bạn vẫn có thể sửa chúng

Có lẽ bạn có một mục nhập trong tập dữ liệu của mình với các từ được phân tách bằng dấu gạch ngang như từ bên dưới thay vì dấu phẩy và dấu cách. Nếu vậy, chạy các lệnh

data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)
3 và
# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
3 sẽ thực hiện thủ thuật

1. Chạy lệnh bên dưới để xem dữ liệu trông như thế nào trong khung dữ liệu của bạn. Thay thế

data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)
5 bằng số mục nhập của dữ liệu có lỗi định dạng

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
0

Python có tốt cho việc dọn dẹp dữ liệu không?
Hiển thị dữ liệu của mục nhập cụ thể

2 Tiếp theo, hãy chạy lệnh bên dưới để thay thế dấu gạch ngang bằng dấu phẩy (

data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)
6) trong cột Điểm yếu (
data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)
7) của mục nhập dữ liệu

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
3

3. Chạy lại lệnh

data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)
8 như bạn đã làm ở bước một để kiểm tra xem có dấu gạch ngang nào trong dữ liệu không

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
0

Như bạn có thể thấy bên dưới, đầu ra hiển thị dấu phẩy hiện phân tách các từ

Python có tốt cho việc dọn dẹp dữ liệu không?
Thay thế dấu gạch ngang bằng dấu phẩy

Sửa từ sai chính tả

Bên cạnh lỗi định dạng, các từ sai chính tả trong tập dữ liệu cũng có thể gây khó khăn cho việc phân tích dữ liệu. Tin vui là bạn có thể sử dụng một số thư viện Python kiểm tra chính tả được tạo sẵn. Nhưng vì bạn đã cài đặt pandas, bạn không phải lo lắng về việc cài đặt bất cứ thứ gì khác

1. Chạy các lệnh sau để liệt kê tất cả các từ duy nhất

data.drop_duplicates(subset=["Name"], keep="last", inplace=True)
data.head(15)
9 trong cột
data.info()
0. Thay thế
data.info()
0 nếu bạn muốn liệt kê các từ duy nhất từ ​​​​các cột khác

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
0

Như bạn có thể thấy bên dưới, có hai từ viết sai chính tả (Posion và Fie) đáng lẽ phải là “Poison” và “Fire”. ” Bây giờ bạn có thể xem qua tập dữ liệu, tìm những hàng có từ sai chính tả và sửa chúng

Python có tốt cho việc dọn dẹp dữ liệu không?
Tìm từ viết sai chính tả

Chạy lệnh bên dưới để hiển thị tất cả các hàng mà

data.info()
2từ
data.info()
3 từ cột
data.info()
0. Đối số regex được đặt thành false (
data.info()
5) để coi chuỗi (
data.info()
3) là chuỗi ký tự và không phải là biểu thức chính quy

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
1

Trong kết quả sau đây, có bốn hàng (Arbok(24), Nidorina(30), Nidoqueen(30) và Nidoran(32)), có từ viết sai chính tả Posion trong cột Loại

Python có tốt cho việc dọn dẹp dữ liệu không?
Xem từ viết sai chính tả

3. Bây giờ, hãy chạy các lệnh bên dưới để thay thế

data.info()
3 cho tất cả các mục trong cột
data.info()
0 bằng từ
data.info()
9

# remove whitespaces from Name column
data["Name"].str.replace(' ', '')
# remove whitespaces from Weight column
data["Type"].str.replace(' ', '')
# remove whitespaces from Type column
data["Weaknesses"].str.replace(' ', '')
2

Python có tốt cho việc dọn dẹp dữ liệu không?
Thay thế từ sai chính tả “Posion” bằng “Poison”

Nếu thay thế thành công, bạn sẽ thấy mình đã sửa các từ sai chính tả từ “Posion” thành “Poison” trong mục nhập số 24 và 30-32

Python có tốt cho việc dọn dẹp dữ liệu không?
Xác minh các từ sai chính tả đã được sửa

4. Cuối cùng, lặp lại các bước (hai đến ba) để sửa các từ sai chính tả khác

Phần kết luận

Trong hướng dẫn này, bạn đã học cách thực hiện làm sạch dữ liệu bằng Python theo nhiều cách cho các trường hợp sử dụng khác nhau. Bạn cũng nhận ra rằng pandas, một thư viện Python phổ biến, ở ngay gần đó để giúp bạn tiết kiệm thời gian dọn dẹp dữ liệu

Với kiến ​​thức mới này, tại sao bạn không tìm hiểu thêm về các kỹ thuật pandas tiện dụng trong Python để thao tác dữ liệu?

Ghét quảng cáo?

Khám phá sách hướng dẫn ATA

Thông tin khác từ ATA Learning & Partners

  • Python có tốt cho việc dọn dẹp dữ liệu không?

    Tài nguyên được đề xuất

    Tài nguyên được đề xuất cho đào tạo, bảo mật thông tin, tự động hóa, v.v.

  • Python có tốt cho việc dọn dẹp dữ liệu không?

    Được trả tiền để viết

    ATA Learning luôn tìm kiếm những người hướng dẫn ở mọi cấp độ kinh nghiệm. Bất kể bạn là quản trị viên cấp dưới hay kiến ​​trúc sư hệ thống, bạn đều có điều gì đó để chia sẻ. Tại sao không viết trên một nền tảng có khán giả hiện có và chia sẻ kiến ​​thức của bạn với mọi người?

  • Python có tốt cho việc dọn dẹp dữ liệu không?

    Sách hướng dẫn học tập ATA

    ATA Learning được biết đến với các hướng dẫn bằng văn bản chất lượng cao dưới dạng các bài đăng trên blog. Hỗ trợ Học tập ATA với sách điện tử PDF Sách hướng dẫn ATA khả dụng ngoại tuyến và không có quảng cáo

    Bạn có thể sử dụng Python để làm sạch dữ liệu không?

    Python có một số thư viện tích hợp để giúp làm sạch dữ liệu . Hai thư viện phổ biến nhất là pandas và numpy, nhưng bạn sẽ sử dụng pandas cho hướng dẫn này. Thư viện gấu trúc cho phép bạn làm việc với khung dữ liệu gấu trúc để phân tích và thao tác dữ liệu.

    Ngôn ngữ nào là tốt nhất để làm sạch dữ liệu?

    Sử dụng R và Python để làm sạch dữ liệu tốt hơn .

    Python hay R tốt hơn để làm sạch dữ liệu?

    Cả R và Python đều có ưu và nhược điểm khi làm sạch dữ liệu. R dễ sử dụng hơn cho thao tác dữ liệu cơ bản, nhưng Python linh hoạt hơn . Python cũng tốt hơn cho các tác vụ dọn dẹp dữ liệu phức tạp hơn. Nếu bạn mới bắt đầu làm khoa học dữ liệu, R là một lựa chọn tốt.

    Thư viện Python nào được sử dụng để làm sạch dữ liệu?

    Klib . Klib là gói Python mã nguồn mở để nhập, dọn dẹp và phân tích. Đây là gói một cửa được sử dụng để dễ dàng hiểu dữ liệu và tiền xử lý của bạn.