Hướng dẫn python data preprocessing cheat sheet - bảng gian lận tiền xử lý trước dữ liệu python

Hướng dẫn thực tế về cách xử lý dữ liệu trước với gấu trúc

Tín dụng hình ảnh: Stephanie Klepacki trên Unplash

Thông điệp về nhà của bạn là gì?

Thông qua bài đăng này, bạn sẽ tìm hiểu các phương pháp sau:

  • Nhập và xuất dữ liệu
  • Nhận tổng quan về dữ liệu
  • Xử lý với các bản sao, các giá trị bị thiếu, lỗi chính tả, cặp cột có mối quan hệ tỷ lệ

Giới thiệu

Tiểu sử

Hiểu các cấu trúc dữ liệu và đặc điểm của chúng là một trong những khóa quan trọng, không chỉ để tạo ra mô hình học máy chính xác cao mà còn từ quan điểm đưa nó vào thực tế.

Trên thực tế, quá trình xử lý trước dữ liệu là khác nhau đối với mỗi bộ dữ liệu và cần phải được thực hiện như thể nó được thiết kế riêng. Do đó, khi chúng tôi xây dựng một mô hình học máy, hầu hết thời gian dành cho phần này.

Những gì tôi muốn chia sẻ

Trong bài đăng này, tôi sẽ tóm tắt các chức năng trong gấu trúc thường được sử dụng để xử lý trước dữ liệu.

Tôi là một nhà tư vấn khoa học dữ liệu và bài đăng này dựa trên kinh nghiệm của tôi về việc phân tích một loạt dữ liệu cho các công ty khác nhau.this post is based on my experience of analyzing a wide range of data for various companies.

Ở dưới cùng của bài đăng này, tôi đã đính kèm liên kết chứa sổ ghi chép Jupyter mà chúng tôi sẽ sử dụng.

Nhập các mô -đun

Trước hết, chúng tôi nhập các mô -đun sau chúng tôi sẽ sử dụng.

  • Gấu trúc
  • Numpy
  • Scikit-learn | load_boston, tiền xử lý
import pandas as pd
import numpy as np
from sklearn.datasets import load_boston
from sklearn import preprocessing

Cài đặt hiển thị trong Notebook Jupyter

Tiếp theo, chúng tôi sẽ thay đổi số lượng hàng và cột được hiển thị của Pandas DataFrame trong Notebook Jupyter.

Trong ví dụ này, chúng tôi đã đặt cả số lượng hàng và cột được hiển thị thành 50:

pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)

Đọc tập dữ liệu

Ở đây chúng tôi đọc dữ liệu mà chúng tôi sẽ xem xét. Một ví dụ, bộ dữ liệu nhà ở Boston từ Scikit-Learn sẽ được sử dụng thông qua bài đăng này:
As an example, the Boston Housing Dataset from scikit-learn will be used through this post:

boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])

Đọc dữ liệu CSV

Nói chung, bạn sẽ đọc dữ liệu thông qua các tệp CSV hoặc Excel và đây là cách thực hiện:

df_X = pd.read_csv('boston_X.csv')
  • Nếu tiêu đề không tồn tại: bạn có thể chỉ định rằng không có tiêu đề nào bằng cách thêm tiêu đề = không có gì:
    You can specify that there is no header by “adding header=None”:
df_X = pd.read_csv('boston_X_noheader.csv', header=None)
  • Nếu chỉ mục đã tồn tại: cột KTH có thể được chỉ định dưới dạng chỉ mục bằng cách chỉ số của Index_col = kv:
    The kth column can be specified as an index by “index_col=k”:
df_X = pd.read_csv('boston_X_withindex.csv', index_col=k)

Đọc dữ liệu Excel

Pandas cũng có thể chấp nhận các tệp Excel (.xlsx):

df_X = pd.read_excel('boston_X.xlsx')
  • Chọn Sheet_Nameif Bạn có nhiều tờ trong một tệp Excel duy nhất, bạn có thể chọn trang riêng lẻ để đọc bằng cách sử dụng bảng tính
    If you have multiple sheets in a single excel file, you can select the individual sheet to read using “sheet_name”:
df_X = pd.read_excel('boston.xlsx', sheet_name='sheet_X')
df_y = pd.read_excel('boston.xlsx', sheet_name='sheet_y')

Tổng quan về dữ liệu

Trong phần này, chúng tôi sẽ xem xét tổng quan về DataFrame bạn đã đọc.

Ở đây, chúng tôi đọc lại dữ liệu mới. Tuy nhiên, một số phần của dữ liệu đã được sửa đổi một cách có chủ ý cho thực tiễn.some parts of the data have been intentionally modified for the practice.

df_X = pd.read_csv('boston_X_mod.csv')

Hình dạng

Kiểm tra số lượng hàng và cột của DataFrame bằng cách sử dụng hình dạng hình chữ nhật. Trong ví dụ này, nó là 509 hàng * 15 cột.
In this example, it is 509 rows * 15 columns.

df_X.shape

Đầu, đuôi

Kiểm tra các hàng X đầu tiên và nội dung hàng Y cuối cùng bằng cách sử dụng đầu và đuôi đuôi.

pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
0

Nhận tên cột

pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
1

Nếu bạn muốn làm danh sách

pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
2

Các hàng, cột trùng lặp

Đôi khi, bạn sẽ đối mặt với các hàng hoặc cột trùng lặp. (Đáng ngạc nhiên!) Trong thực tế, bộ dữ liệu đôi khi được thực hiện hoặc thường được kết hợp và sửa chữa bằng bàn tay con người. Do đó, chúng tôi phải kiểm tra cẩn thận các bản sao mỗi lần.

Hàng (chỉ mục)

Làm thế nào để hiển thị các hàng trùng lặp? Đây là cách làm.

  • Hiển thị hàng cuối cùng của các hàng trùng lặp:the last row of duplicated rows:
pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
3
  • Hiển thị hàng đầu tiên của các hàng trùng lặp:the first row of duplicated rows:
pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
4
  • Hiển thị tất cả các hàng của các hàng trùng lặp:all the rows of duplicated rows:
pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
5

Như đã chỉ ra ở trên, vì bộ dữ liệu được sử dụng trong bài đăng này đã được sửa đổi một cách có chủ ý, một số hàng trùng lặp xuất hiện. Trong trường hợp này, chúng tôi đã tìm thấy 3 cặp hàng trùng lặp: 303 và 508; 368 và 507; 453 và 506.

cột

Chúng ta có thể tìm thấy các cột trùng lặp theo cách tương tự như chúng ta đã làm cho các hàng bằng cách sử dụng ma trận chuyển vị.

Hiển thị tất cả các cột của các cột trùng lặp:

pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
6

Chúng tôi đã tìm thấy các cột trùng lặp về thuế và thử nghiệm, mà tôi đã cố tình tạo ra. Chúng tôi cũng chỉ có thể hiển thị các cột đầu tiên hoặc cuối cùng như chúng tôi đã làm cho các hàng. Cột của thử nghiệm trên mạng được loại bỏ sau.

Giá trị bị mất

Kiểm tra các giá trị bị thiếu

Một vấn đề khác của bộ dữ liệu thô là các giá trị bị thiếu. Đầu tiên, chúng tôi xem xét nơi các giá trị còn thiếu đang sử dụng PD.isnull.

Nó trả về một dataFrame ở định dạng Boolean. Ngoài ra, chúng ta có thể truy xuất các hàng và cột tương ứng bằng cách sử dụng NP NP.where,:

pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
7

Chúng tôi tìm thấy các giá trị bị thiếu định vị [296, 12], [308, 6], [494, 7]. Kiểm tra chúng chỉ trong trường hợp:

Chúng tôi xác nhận đây là những giá trị bị thiếu.

Điền vào Blanc

Thứ hai, chúng ta phải thay thế các giá trị bị thiếu này bằng một số giá trị thay thế, có thể là giá trị trung bình hoặc trung bình trong cùng một cột hoặc chỉ 0 (phần này là thời điểm tốt để hiển thị các kỹ năng của bạn với tư cách là nhà khoa học dữ liệu!).

Sử dụng thay thế trên mạng, có thể thay thế Blanc bằng các chữ cái và số được chỉ định. Ở đây chúng tôi chỉ điền vào các số không cho các giá trị bị thiếu này như một trường hợp đơn giản:

pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
8

Chúng tôi chỉ đảm bảo các giá trị bị thiếu được thay thế bằng Zeros:

Kiểm tra các loại biến và cách tìm lỗi chính tả

Tiếp theo, chúng tôi sẽ kiểm tra các loại biến cho mỗi cột. Kiểm tra các loại biến không chỉ chỉ dành cho việc kiểm tra trên mạng. Nó rất hữu ích để kiểm tra xem bộ dữ liệu có bao gồm một lỗi đánh máy hay không, đặc biệt là đối với các giá trị số. Theo kinh nghiệm của tôi, loại sai lầm này đã xảy ra nhiều lần.

Tiết DTYPES Tiết lộ các loại biến cho tất cả các cột:

pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
9

Có vẻ như các cột của Dis Dis (khoảng cách có trọng số đến năm trung tâm việc làm của Boston) và B Biêu (1000 (BK - 0,63) ² trong đó BK là tỷ lệ của người da đen theo thị trấn) không phải là cột số. Nhưng chờ đợi, chỉ cần kiểm tra lại dữ liệu!

Như bạn có thể thấy, các cột của dis dis dis dis và bv bao gồm các giá trị số ít nhất là 5 hàng đầu tiên. Nó có nghĩa là một số yếu tố khác với giá trị số được bao gồm trong các cột này.

Ở đây, tôi sẽ chỉ cho bạn cách tìm thấy chúng.

Đầu tiên, xác định danh sách các cột đáng ngờ trong col_miss. Và sau đó, trích xuất các giá trị duy nhất trong cột và cố gắng chuyển đổi từng giá trị thành dữ liệu số. Nếu các giá trị được biểu thị đúng là các giá trị số, chúng ta chỉ cần bỏ qua chúng. Tuy nhiên, nếu các giá trị không thể được chuyển đổi chính xác, chúng tôi sẽ hiển thị các giá trị đó:

boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
0

Từ kết quả, chúng tôi đã tìm thấy lỗi chính tả là 1..7554 trong DIS và 396.9.9 trong B. Các giá trị chính xác sẽ lần lượt là 1.7554 và 396,99.

Đó là lý do tại sao, chúng tôi sẽ sửa các giá trị sau:

boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
1
  • Thay đổi loại dữ liệu

Đối với các cột của dis dis dis dis và bv, hãy chuyển đổi chúng thành định dạng float, đây là loại dữ liệu gốc sử dụng trên Ast Astype,:

boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
2

Số lượng giá trị duy nhất

Ở đây chúng ta thấy có bao nhiêu giá trị khác nhau (số lượng giá trị duy nhất) được chứa trong mỗi cột bằng cách sử dụng Nun Nunique,:

boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
3

Từ những kết quả này, chúng ta có thể thấy rằng Crim có 504 giá trị khác nhau, trong khi Chas chỉ bao gồm hai giá trị khác nhau, điều này khẳng định các biến giả.

Mối quan hệ theo tỷ lệ

Ở trên, chúng tôi đã xác nhận các bản sao, các giá trị bị thiếu và lỗi chính tả. Tuy nhiên, ngay cả khi các số không khớp chính xác giữa hai cột, một số cặp cột đôi khi tỷ lệ hoàn toàn với nhau. Ở đây, chúng tôi kiểm tra xem loại cặp cột này có được bao gồm trong DataFrame hay không bằng cách chuẩn hóa các giá trị cho mỗi cột bằng cách sử dụng Min MinMaxScaler,:

boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
4

Từ đầu ra, chúng tôi thấy rằng, Test Test2 (được bao gồm một cách có chủ ý) tỷ lệ thuận với RM RM. Trong học máy, một tính năng tỷ lệ như vậy có nghĩa là trùng lặp, vì vậy chúng ta cần loại bỏ một trong số chúng.

Thả cột

Ở đây, chúng tôi xóa các cột trùng lặp, thử nghiệm và thử nghiệm mà chúng tôi đã tìm thấy trước đó, sử dụng Drop Drop :( Axis = 1 có nghĩa là xóa theo hướng cột)
(axis=1 mean that delete in the column direction)

boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
5

Mô tả

Sau khi làm cho DataFrame sạch sẽ, chúng tôi rút ra các tham số thống kê cơ bản như giá trị trung bình, độ lệch chuẩn, giá trị tối đa và tối thiểu, cho mỗi cột của DataFrame bằng cách sử dụng mô tả.

boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
6

Xuất khẩu

Sau khi xử lý dữ liệu, chúng ta muốn làm gì? Tất nhiên, hãy cứu họ! Đây là cách xuất DataFrame dưới dạng các tệp CSV và Excel.

  • CSV trên index = false, để loại trừ chỉ mục khỏi các mục đầu ra
    “index=False” to exclude index from output items
boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
7
  • Excel
boston = load_boston()
df_X = pd.DataFrame(boston.data, columns=boston.feature_names)
df_y = pd.DataFrame(boston.target, columns=['target'])
8

Đó là về nó!

Cảm ơn bạn đã đọc bài viết này và hy vọng bạn thích nó. Tôi rất vui khi nhận được bất kỳ bình luận nào từ tất cả các bạn!

Liên kết

Các bài viết khác

Trang web cá nhân

5 bước chính của tiền xử lý dữ liệu là gì?

Các bước tiền xử lý dữ liệu..
Đánh giá chất lượng dữ liệu ..
Làm sạch dữ liệu ..
Chuyển đổi dữ liệu ..
Giảm dữ liệu ..

Các bước trong tiền xử lý dữ liệu trong Python là gì?

Cách xử lý dữ liệu trong từng bước của Python..
Tải dữ liệu trong gấu trúc ..
Thả các cột không hữu ích ..
Thả hàng với các giá trị bị thiếu ..
Tạo các biến giả ..
Chăm sóc dữ liệu bị thiếu ..
Chuyển đổi khung dữ liệu thành Numpy ..
Chia tập dữ liệu thành dữ liệu đào tạo và dữ liệu kiểm tra ..

Bốn bước trong tiền xử lý dữ liệu là gì?

Để làm cho quá trình dễ dàng hơn, tiền xử lý dữ liệu được chia thành bốn giai đoạn: làm sạch dữ liệu, tích hợp dữ liệu, giảm dữ liệu và chuyển đổi dữ liệu.data cleaning, data integration, data reduction, and data transformation.

Làm thế nào để bạn thực hành tiền xử lý dữ liệu?

Tiền xử lý dữ liệu trong học máy: 7 bước dễ theo dõi..
Có được bộ dữ liệu ..
Nhập tất cả các thư viện quan trọng ..
Nhập bộ dữ liệu.Các khóa học học máy tốt nhất & khóa học AI trực tuyến ..
Xác định và xử lý các giá trị còn thiếu ..
Mã hóa dữ liệu phân loại.....
Chia bộ dữ liệu ..
Tính năng tỷ lệ ..