Có thể sử dụng python để làm sạch dữ liệu không?

Hướng dẫn quy trình này giải thích những thách thức về dữ liệu mà các nhà khoa học phải đối mặt và cách khắc phục chúng bằng cách sử dụng các kỹ thuật làm sạch dữ liệu với Pandas và NumPy trong Python

Bắt đầu miễn phí

Mục lục

Dữ liệu chính xác và có ý nghĩa rất quan trọng đối với bất kỳ dự án khoa học dữ liệu nào. Việc lập kế hoạch và chuẩn bị, phác thảo dữ liệu và các hoạt động phân tích tiếp theo sẽ trở nên vô nghĩa trừ khi tập dữ liệu ban đầu không có lỗi và không rõ ràng

Chuẩn bị dữ liệu chiếm phần lớn thời gian mà các nhà khoa học dữ liệu dành cho nhiệm vụ của họ. Trong một số trường hợp, nó có thể lên tới bảy mươi đến tám mươi phần trăm tổng thời gian dự án

Mặc dù đây là sự cố đã biết trong số các nỗ lực của khoa học dữ liệu, nhưng có các giải pháp để làm sạch bộ dữ liệu bằng cách sử dụng thư viện Pandas và NumPy trong Python

Hướng dẫn quy trình này sẽ xem xét lý do tại sao bắt buộc phải tạo cơ sở dữ liệu sạch trước khi xảy ra bất kỳ thao tác dữ liệu nào, các vấn đề về tập dữ liệu phổ biến mà các nhà khoa học dữ liệu phải đối mặt và cách các chức năng cụ thể trong Pandas và NumPy có thể đạt được kết quả tập dữ liệu tích cực

Các vấn đề thường gặp với dữ liệu và bộ dữ liệu

Bên cạnh khả năng truy cập dữ liệu và phạm vi tiếp cận rộng rãi mà Internet cung cấp, cùng với các công cụ thu thập và thu thập dữ liệu tự động, còn có các luồng thông tin liên tục để xem xét và phân tích.  

Bạn có thể thêm vào các kho lưu trữ này một lượng lớn dữ liệu được phân phối tự do mà hầu hết các cơ quan chính phủ lưu trữ trực tuyến và dữ liệu dựa trên đám mây đắt tiền mà hầu hết các tổ chức vừa và lớn tài trợ để lưu trữ dữ liệu

Do đó, việc tiếp cận với nhiều loại thông tin không phải là thách thức mà các nhà khoa học dữ liệu phải đối mặt. Vì vậy, nếu có sẵn nhiều thông tin, tại sao các nhà khoa học dữ liệu lại dành nhiều thời gian như vậy để chuẩn bị dữ liệu?

Chất lượng dữ liệu đầu vào kém là kẻ thù chung số một đối với bất kỳ dự án trí tuệ nhân tạo hoặc máy học nào. Các hệ thống thông tin nhạy cảm với dữ liệu này chỉ có thể tạo ra các kết quả có uy tín dựa trên những gì chúng được cung cấp để xử lý

Sau đây là những thách thức chính mà các nhà khoa học dữ liệu phải đối mặt với dữ liệu đầu vào

Sao chép và Sao chép

Không chỉ các nhà khoa học dữ liệu mới có thể bị choáng ngợp với lượng dữ liệu dồi dào; . Kho dữ liệu đám mây, kho lưu trữ dữ liệu trực tuyến và cơ sở dữ liệu kinh doanh nội bộ đều sẽ có thông tin chồng chéo và với các quy trình sao lưu nội bộ, nhiều phiên bản cũng vậy.  

Ngoài ra, họ có thể sẽ có các silo hệ thống và ứng dụng kinh doanh. Một lần nữa, chắc chắn có sự trùng lặp và chồng chéo đáng kể giữa các nguồn này.  

Dữ liệu trùng lặp thường xảy ra với chi tiết liên hệ, ảnh hưởng đáng kể đến trải nghiệm của khách hàng. Các chiến dịch tiếp thị từ các dự án phân tích dữ liệu sẽ bị ảnh hưởng nếu một số khách hàng tiềm năng bị bỏ lỡ hoàn toàn hoặc nếu những khách hàng tiềm năng khác được liên hệ nhiều lần. Các bản sao làm tăng xác suất xảy ra kết quả phân tích sai lệch

Dữ liệu không chính xác

Độ chính xác của dữ liệu là một thành phần quan trọng đối với các ngành được quản lý chặt chẽ như chăm sóc sức khỏe. Dữ liệu không chính xác hoặc sai sẽ không cung cấp cái nhìn chính xác về thế giới thực về bất kỳ chủ đề nào được phân tích và các quyết định sai sẽ chỉ xảy ra khi phân tích dữ liệu đó.  

Bất kể trải nghiệm khách hàng được cá nhân hóa được nghĩ ra và triển khai như thế nào, chúng sẽ chỉ dẫn đến sự thất vọng lan rộng. Các chiến dịch tiếp thị sẽ hoạt động kém hiệu quả và các quỹ tổ chức có giá trị sẽ bị lãng phí nếu dữ liệu khách hàng bị sai.   

Dữ liệu không chính xác có thể bắt nguồn từ nhiều yếu tố, bao gồm lỗi đầu vào của con người và dữ liệu trôi dạt. Ngoài ra, chất lượng dữ liệu sẽ xuống cấp theo thời gian và có thể mất tính toàn vẹn khi dữ liệu được sao chép qua nhiều hệ thống con khác nhau. Tự động hóa quản lý dữ liệu có thể hữu ích, nhưng các công cụ chất lượng dữ liệu chuyên dụng sẽ mang lại kết quả dễ chấp nhận hơn

Ngoại lệ dữ liệu

Điểm khác biệt là một đối tượng dữ liệu khác biệt đáng kể so với các đối tượng dữ liệu còn lại trong tập dữ liệu. Chúng thường được gây ra bởi lỗi thực thi, đo lường hoặc nhập thủ công. Quá trình phát hiện ngoại lệ thường được gọi là khai thác ngoại lệ

Có rất nhiều phương pháp để phát hiện dữ liệu ngoại lệ và quá trình loại bỏ trong khung dữ liệu tương đối đơn giản

Các ngoại lệ được phát hiện bằng cách sử dụng kỹ thuật trực quan hóa hoặc đồ họa, thực hiện các công thức toán học trực tiếp trên tập dữ liệu hoặc bằng cách sử dụng phương pháp thống kê cụ thể.  


Mỗi phương pháp này sẽ được thảo luận như sau

Hình dungHộpÂm mưu

Một boxplot ghi lại tổng quan trực quan của dữ liệu chỉ bằng một hộp đơn giản và biểu đồ râu ria. Một boxplot tóm tắt dữ liệu mẫu của tập dữ liệu bằng cách sử dụng phân vị thứ 25, 50 và 75.  

Chỉ bằng cách kiểm tra boxplot, người ta có thể thu thập thông tin chuyên sâu [chẳng hạn như phần tư, trung bình và giá trị ngoại lệ] trong tập dữ liệu. Ngoài ra, các đối tượng dữ liệu ngoại lệ có thể dễ dàng được phát hiện vì chúng sẽ rõ ràng liên quan đến phần lớn các đối tượng tập dữ liệu

Âm mưu phân tán

Biểu đồ phân tán thường được sử dụng khi tập dữ liệu chứa dữ liệu số được ghép nối, khi biến phụ thuộc có nhiều giá trị cho từng biến độc lập hoặc khi xác định mối quan hệ giữa hai biến.  

Theo một boxplot, một biểu đồ phân tán có thể được sử dụng để phát hiện đối tượng dữ liệu ngoại lệ

điểm Z

Điểm Z còn được gọi là điểm tiêu chuẩn. Giá trị hoặc điểm số giúp hiểu chính xác điểm dữ liệu cách giá trị trung bình bao xa. Và sau khi thiết lập một giá trị ngưỡng, người ta có thể sử dụng điểm số z của các giá trị điểm dữ liệu để khám phá bất kỳ giá trị ngoại lệ nào

IQR [hoặc Khoảng tứ phân vị]

IQR là một cách tiếp cận để định vị các đối tượng dữ liệu ngoại lai và đây là cách tiếp cận làm sạch dữ liệu được sử dụng phổ biến và đáng tin cậy nhất trong lĩnh vực nghiên cứu

IQR là điểm chuẩn để xác định vị trí của “năm mươi người ở giữa” trong một tập dữ liệu. Trong trường hợp phạm vi là phép đo vị trí bắt đầu và kết thúc trong tập dữ liệu, IQR sẽ đo vị trí của phần lớn các giá trị.  

Vì lý do này, nó được ưu tiên hơn so với các biện pháp lây lan khác khi báo cáo các mục như điểm hiệu suất giáo dục. Và nó có hiệu quả cao trong việc phát hiện các giá trị ngoại lệ

Dữ liệu mơ hồ và không chính xác

Trong phạm vi lớn và phức tạp, lỗi dữ liệu có thể xâm nhập bất chấp sự giám sát nghiêm ngặt của DBA. Ví dụ: tiêu đề cột có thể gây hiểu lầm, sự cố định dạng dữ liệu tự động xảy ra nếu quy tắc cơ sở dữ liệu phía sau, trình kích hoạt và chế độ xem kích hoạt.  

Lỗi chính tả sẽ xảy ra mà không bị phát hiện, đặc biệt nếu dữ liệu tổng hợp trải rộng ra các biên giới quốc tế [chẳng hạn như sự khác biệt về chính tả phát sinh giữa tiếng Anh Anh và tiếng Anh Mỹ]. Dữ liệu mơ hồ như những ví dụ này sẽ gây ra lỗi với cả báo cáo và phân tích.  

Dữ liệu bị ẩn hoặc bị thiếu

Các tổ chức thường chỉ sử dụng một phần dữ liệu của họ, trong khi phần còn lại sẽ được sao chép - và bị lãng quên - trong các silo dữ liệu sao lưu trên đám mây hoặc đổ vào kho lưu trữ dữ liệu tốc độ thấp, truy cập thấp.  

Ví dụ: dữ liệu khách hàng quan trọng và có giá trị chỉ dành cho nhóm bán hàng có thể không được chia sẻ với nhóm dịch vụ khách hàng

Mặc dù hoạt động bán hàng đang bảo vệ dữ liệu có giá trị và do đó bao vây các khách hàng có giá trị, nhưng họ đang thúc đẩy một môi trường nơi tổ chức đánh mất cơ hội duy trì hồ sơ khách hàng hoàn chỉnh.  

Dữ liệu ẩn bỏ qua các cơ hội khám phá có giá trị để cải thiện dịch vụ khách hàng, thiết kế sản phẩm khéo léo và tối ưu hóa quy trình kinh doanh.   

Dữ liệu không nhất quán

Khi làm việc trên nhiều nguồn dữ liệu, rất có thể gặp phải sự không khớp với cùng một thông tin trên các nguồn đó.  

Sự khác biệt sẽ xảy ra giữa sự khác biệt về định dạng, đơn vị đo lường và lỗi chính tả. Ngoài ra, dữ liệu không nhất quán thường xảy ra trong các dự án di chuyển dữ liệu do hợp nhất máy chủ hoặc các dự án nâng cấp máy chủ.  

Dữ liệu không nhất quán sẽ tích tụ theo thời gian và giảm thiểu giá trị của chúng. Tuy nhiên, các tổ chức dựa trên dữ liệu theo dõi chặt chẽ tính nhất quán của dữ liệu vì họ hiểu nhu cầu về dữ liệu chính xác và đáng tin cậy để hỗ trợ nỗ lực phân tích của họ

Tìm hiểu thêm

Khám phá cách dữ liệu đào tạo có thể tạo ra hoặc phá vỡ các dự án AI của bạn và cách triển khai triết lý AI lấy dữ liệu làm trung tâm trong các dự án ML của bạn

Tải xuống Sách trắng


Cách thực hiện kiểm tra tập dữ liệu định kỳ

Vì vậy, làm cách nào để chống lại những thách thức khác nhau mà các nhà khoa học dữ liệu phải đối mặt với dữ liệu sai lệch của họ? . Họ là Pandas và NumPy


Các công cụ Python chính để làm sạch bộ dữ liệu

gấu trúc

Pandas là gói thư viện mã nguồn mở Python được các nhà khoa học dữ liệu sử dụng rộng rãi để phân tích dữ liệu phức tạp và các dự án máy học/AI.  

Pandas đã được xây dựng trên một gói thư viện khác có tên NumPy. Do đó, pandas dễ dàng hỗ trợ các mảng đa chiều và được coi là một trong những gói quản lý dữ liệu phổ biến nhất hiện có

Pandas hoạt động tốt cùng với các mô-đun khoa học dữ liệu khác trong hệ sinh thái Python và thường tương thích với mọi bản nâng cấp Python và phiên bản mới


NumPy

Thuật ngữ NumPy là một dạng ký hiệu ngắn cho Numerical Python. Nó là một gói thư viện chức năng bao gồm các đối tượng mảng và tập hợp các thủ tục con để xử lý các mảng đa chiều đó. Khi sử dụng NumPy, có thể thực hiện các phép toán logic và toán học khác nhau

Nhập Pandas và NumPy bằng Python


Hướng dẫn quy trình này giả định rằng người đọc đã có hiểu biết cơ bản về các thư viện Pandas và NumPy, bao gồm những điều sau đây

  1. Các đối tượng sê-ri và DataFrame,

  2. Các phương thức phổ biến được áp dụng cho các đối tượng này và

  3. Hiểu biết về NaN của NumPy

Để nhập cả thư viện Pandas và NumPy vào Python, các lệnh sau được sử dụng

import pandas as pd
import numpy as np

Bước tiếp theo là đọc và cung cấp quyền truy cập vào dữ liệu thô yêu cầu thao tác và làm sạch dữ liệu. Ví dụ: tạo DataFrame từ tệp CSV có tên. 'DF-Rugby-Nhân sự-Hồ sơ-Lịch sử. csv'.  

Trong ví dụ làm sạch dữ liệu bên dưới, chúng tôi chuyển một đường dẫn đến pd. read_csv. Điều này có nghĩa là tất cả các bộ dữ liệu nằm trong một thư mục có tên DatasetLibrary, nằm trong thư mục làm việc hiện tại của chúng tôi.

df = pd.read_csv['DatasetLibrary/DF-Rugby-Personnel-File-Historic']
df.head[]

Khi các thư viện có thể truy cập được và dữ liệu thô được tải vào thư mục làm việc của chúng tôi, chúng tôi có thể bắt đầu quá trình làm sạch dữ liệu

Xóa khoảng trắng

Khoảng trắng không cần thiết sẽ làm tăng kích thước tập dữ liệu trong cơ sở dữ liệu của bạn. Nó cũng cản trở việc tìm kiếm các bản sao là một thách thức, vì hầu hết các thuật toán tìm kiếm sẽ tính đến khoảng trắng khi thực hiện các thuật toán khớp của chúng

Hoạt động này sẽ kiểm tra tập dữ liệu được tải sẵn để tìm khoảng trắng, như chúng ta thấy trong các cột Tên, Nhóm và Vị trí bên dưới. Sau đó, chúng tôi sẽ loại bỏ các phần tử khoảng trắng của dữ liệu một cách có hệ thống

Mã python sau đây, sau khi được thực thi, sẽ tìm kiếm và xóa khoảng trắng trong các cột đã đề cập trước đó. Đoạn mã dưới đây chuyển tên cột cho hàm thay thế [] để xóa các khoảng trắng ở đầu và cuối trong tập dữ liệu

# remove whitespaces from Name column
data["Name"].str.replace[' ', '']
# remove whitespaces from Team column
data["Team"].str.replace[' ', '']
# remove whitespaces from Position column
data["Position"].str.replace[' ', '']

Để hoàn tất hoạt động làm sạch dữ liệu, hãy kiểm tra lại tập dữ liệu để xác nhận rằng tất cả khoảng trắng đã được xóa


Thả các cột trong một khung dữ liệu

Đôi khi, không phải tất cả các danh mục dữ liệu trong tập dữ liệu đều hữu ích cho nhiệm vụ hiện tại. Do đó, chúng sẽ cần được xóa khỏi tập dữ liệu của bạn trước khi quá trình phân tích diễn ra

Đối với ví dụ tập dữ liệu của chúng tôi, cột - 'Dấu sao' không hữu ích và do đó việc giữ lại danh mục dữ liệu này sẽ tiêu tốn dung lượng và có khả năng .

Pandas cung cấp một phương pháp hữu ích để xóa các hàng hoặc cột không mong muốn khỏi DataFrame bằng cách sử dụng hàm drop[].  

Chúng ta có thể thả cột này như sau

to_drop = ['Star Sign']
 
df.drop[to_drop, inplace=True, axis=1]

Trong đoạn mã trên, một danh sách đã được xác định chứa các tên cột cần loại bỏ [chỉ một trong trường hợp của chúng tôi]. Hàm drop[] được thực thi, sử dụng tham số True tại chỗ và tham số trục được đặt thành 1.

Lệnh python này cho Pandas biết rằng các thay đổi sẽ được thực hiện trực tiếp trong đối tượng của chúng ta và tìm kiếm các giá trị cột đó sẽ bị loại bỏ

Kiểm tra DataFrame sau hoạt động này sẽ cho thấy cột không mong muốn đã bị xóa


Sửa từ sai chính tả

Bên cạnh các lỗi định dạng, sẽ thường có các từ sai chính tả trong tập dữ liệu. Tình trạng này làm cho việc phân tích dữ liệu trở nên khó khăn. Để giải quyết tình huống này, có các thư viện trình kiểm tra chính tả dựng sẵn trong Python có thể dễ dàng sử dụng - như sau.  

Chạy lệnh sau để liệt kê tất cả các từ duy nhất bằng cách sử dụng từ khóa unique[] trong cột Vị trí.

# Turn output into a list of unique words from the Position column
unique_type = list[data["Position"].str.split[", ", expand=True].stack[].unique[]]
# Print out the list
unique_type

Như chúng ta có thể thấy, có hai từ sai chính tả [ProppeFlankker] that should be “Prop” and “Flanker.” So now one can proceed through the entire dataset, find which rows have these misspelled words, and remediate them.

# Print out the list
unique_type
['Prop',
 'Hooker',
 'No. 8',
 'Proppe',
 'Lock',
 'Scrum-half',
 'Fly-half',
 'Flanker',
 'Flankker',
 'Centre',
 'Winger',
 'Fullback']

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

Các bộ dữ liệu lớn thường có các mục trùng lặp, sẽ cần xác định và loại bỏ. Quá trình phát hiện và xóa dữ liệu sai đó trước tiên là tìm kiếm các bản sao theo tên cột trong tập dữ liệu

Mỗi mục trong tập dữ liệu mẫu của chúng tôi phải có một mục duy nhất trong cột Tên. Tuy nhiên, như chúng ta có thể thấy bên dưới, Callum có hai mục, một ở hàng 5 và một ở hàng 7. Ngoài ra, vì cột Cân nặng chỉ nên chứa số nên hàng 7 chứa văn bản số cân thừa trong cột Cân nặng. Hàng này sẽ cần phải được gỡ bỏ

Chạy lệnh python sau để xóa bản sao đầu tiên bằng dữ liệu. drop_duplicates và giữ lần xuất hiện hàng cuối cùng [keep="last"]

data.drop_duplicates[subset=["Name"], keep="last", inplace=True]
data.head[6]

Phát hiện và sửa lỗi ngoại lệ

Để xóa một ngoại lệ, người ta phải tuân theo quy trình tương tự xóa mục nhập dữ liệu sai khỏi tập dữ liệu. Và điều này liên quan đến việc tìm vị trí chính xác của nó trong tập dữ liệu. Phần lớn thời gian đối phó với các ngoại lệ là phát hiện sự tồn tại của chúng. Theo phương pháp phát hiện được sử dụng, danh sách kết quả của tất cả các mục dữ liệu thỏa mãn định nghĩa ngoại lệ sẽ cần phải bị xóa

 dataframe.drop[row_index, inplace = True]

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

Thay vì xử lý dữ liệu trùng lặp, một tình huống tiêu chuẩn khác đang khắc phục các lỗi định dạng trong tập dữ liệu. Bản ghi dữ liệu không chính xác chứa các vấn đề về định dạng có thể được khắc phục dễ dàng bằng Python

Có lẽ có một mục nhập trong tập dữ liệu của bạn với các từ được phân tách bằng dấu gạch ngang - theo ví dụ bên dưới. Nó phải là dấu phẩy và dấu cách. Nếu vậy, việc thực thi các lệnh apply[] và replace[] là bắt buộc

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

________số 8_______

Chạy lệnh sau bên dưới để thay thế dấu gạch ngang bằng dấu phẩy

data["Injuries"] = data["Injuries"].apply[lambda x: x.replace[" -", ","]]

Chạy lại dữ liệu. lệnh loc như trong bước một trước đó để xác nhận hiện tại không có dấu gạch ngang nào trong dữ liệu

________số 8_______

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

Phần kết luận

Các vấn đề về chất lượng dữ liệu có thể là cơ hội được ngụy trang để giải quyết nhằm ngăn ngừa mất dữ liệu trong tương lai và dự đoán không chính xác. Với sự hiểu biết chung về các kỹ thuật chất lượng dữ liệu, hãy tận dụng dữ liệu của bạn để cải thiện trải nghiệm của khách hàng, khám phá các cơ hội tiếp thị mới và thúc đẩy tăng trưởng kinh doanh.

Hướng dẫn quy trình này đã mô tả những thách thức chính về dữ liệu mà các nhà khoa học dữ liệu phải đối mặt hàng ngày và chúng tôi đã học cách thực hiện các hoạt động làm sạch dữ liệu đơn giản nhưng mạnh mẽ bằng Python.  

Chúng tôi cũng đã biết rằng Pandas và NumPy là các gói thư viện Python phổ biến và có giá trị giúp tiết kiệm thời gian quý báu cho việc dọn dẹp bộ dữ liệu

Tìm hiểu thêm về ghi nhãn dữ liệu

chú thích dữ liệu

Học chủ động để phát hiện đối tượngLàm cách nào để chú thích không gây khó khăn?Làm cách nào để chú thích đúng dữ liệu? . tận dụng tính năng phân đoạn tương tác để đạt được tốc độ và chất lượng hiện đạiData annotation: leveraging interactive segmentation to achieve state of the art quality and speedCải thiện chú thích dữ liệu bằng Siêu pixelNhững điều có thể xảy ra sai trong quá trình chú thích và cách tránh chúngData annotation: leveraging interactive segmentation to achieve state of the art quality and speed

ghi nhãn dữ liệu

Làm cách nào để xây dựng một kế hoạch gắn nhãn dữ liệu hiệu quả?Cách triển khai thành công việc giám sát liên tục và gắn nhãn dữ liệu cho một chatbot với Công nghệ Kili

Làm sạch dữ liệu trong Python là gì?

Làm sạch dữ liệu có nghĩa là sửa dữ liệu xấu trong tập dữ liệu của bạn . Dữ liệu xấu có thể là. ô trống. Dữ liệu sai định dạng. Dữ liệu sai.

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 .

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.

Làm sạch dữ liệu dễ dàng hơn trong R hay Python?

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.

Chủ Đề