Hướng dẫn data preprocessing in python - tiền xử lý dữ liệu trong python

Sau khi hoàn thành khóa học, học viên sẽ đạt được các kỹ năng:

  • Hiểu được vòng lặp trong phân tích dữ liệu
  • Phân biệt giữa các loại dữ liệu khác nhau
  • Xác định các loại câu hỏi khác nhau, đặt câu hỏi và tìm những bộ dữ liệu cụ thể
  • Khám phá bộ dữ liệu để xác định xem dữ liệu có phù hợp với dự án không
  • Hiểu và vận dụng quy trình tiền xử lý dữ liệu
  • Tiền xử lý dữ liệu dữ liệu tiếng Anh, tiếng Việt
  • Áp dụng linh hoạt các kỹ thuật chuẩn hóa dữ liệu khác nhau tùy vào các bộ dữ liệu và yêu cầu của dự án
  • Phân tích dữ liệu, triển khai và đánh giá mô hình phân tích dữ liệu 
  • Giải thích kết quả từ các phân tích dữ liệu
  • Quy trình quản lý phân tích dữ liệu hiệu quả
  • Sử dụng thư viện mã nguồn mở sklearn để triển khai một số thuật toán Machine Learning 
  • Kết hợp trực quan hóa dữ liệu, data storytelling, kết quả thống kê để tạo các báo cáo, thuyết trình phân tích dữ liệu mạch lạc, thuyết phục

Nội dung chính

  • Hướng dẫn thực tế về cách xử lý dữ liệu trước với gấu trúc
  • Thông điệp về nhà của bạn là gì?
  • Giới thiệu
  • Tiểu sử
  • Những gì tôi muốn chia sẻ
  • Nhập các mô -đun
  • Cài đặt hiển thị trong Notebook Jupyter
  • Đọc tập dữ liệu
  • Đọc dữ liệu CSV
  • Đọc dữ liệu Excel
  • Tổng quan về dữ liệu
  • Đầu, đuôi
  • Nhận tên cột
  • Nếu bạn muốn làm danh sách
  • Các hàng, cột trùng lặp
  • Hàng (chỉ mục)
  • Giá trị bị mất
  • Kiểm tra các giá trị bị thiếu
  • Điền vào Blanc
  • Kiểm tra các loại biến và cách tìm lỗi chính tả
  • Số lượng giá trị duy nhất
  • Mối quan hệ theo tỷ lệ
  • Thả cột
  • Xuất khẩu
  • Đó là về 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 trong tiền xử lý dữ liệu trong Python là gì?
  • Bốn bước trong tiền xử lý dữ liệu là gì?
  • Làm thế nào để bạn thực hành tiền xử lý dữ liệu?

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

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

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

Giới thiệu

  • Tiểu sử
  • Những gì tôi muốn chia sẻ
  • Nhập các mô -đun

Giới thiệu

Tiểu sử

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

Nhập các mô -đun

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

Nhập các mô -đun

Cài đặt hiển thị trong Notebook Jupyterthis post is based on my experience of analyzing a wide range of data for various companies.

Đọc tập dữ liệu

Nhập các mô -đun

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

  • Đọc tập dữ liệu
  • Đọc dữ liệu CSV
  • Đọc dữ liệu Excel
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

Đọc tập dữ liệu

Đọc dữ liệu CSV

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

Đọc tập dữ liệu

Đọc dữ liệu CSV
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

Đọc dữ liệu Excel

Tổng quan về dữ liệu
  • Đầu, đuôi
    You can specify that there is no header by “adding header=None”:
df_X = pd.read_csv('boston_X_noheader.csv', header=None)
  • Nhận tên cột
    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ínhIf you have multiple sheets in a single excel file, you can select the individual sheet to read using “sheet_name”:
    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.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.
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: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: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: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)
(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
    “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.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ệ ..