Làm sạch và chuẩn bị dữ liệu trong Python là gì?

Thiếu dữ liệu luôn là một vấn đề trong các tình huống thực tế. Các lĩnh vực như học máy và khai thác dữ liệu phải đối mặt với các vấn đề nghiêm trọng về độ chính xác của dự đoán mô hình do chất lượng dữ liệu kém do thiếu giá trị. Trong những lĩnh vực này, xử lý giá trị còn thiếu là điểm tập trung chính để làm cho các mô hình của họ chính xác và hợp lệ hơn

Khi nào và tại sao dữ liệu bị bỏ lỡ?

Hãy để chúng tôi xem xét một cuộc khảo sát trực tuyến cho một sản phẩm. Nhiều khi mọi người không chia sẻ hết những thông tin liên quan đến mình. Rất ít người chia sẻ kinh nghiệm của họ, nhưng không biết họ đã sử dụng sản phẩm trong bao lâu; . Do đó, theo cách này hay cách khác, một phần dữ liệu luôn bị thiếu và điều này rất phổ biến trong thời gian thực

Bây giờ chúng ta hãy xem cách chúng ta có thể xử lý các giá trị bị thiếu [giả sử NA hoặc NaN] bằng cách sử dụng Pandas

# import the pandas library
import pandas as pd
import numpy as np

df = pd.DataFrame[np.random.randn[5, 3], index=['a', 'c', 'e', 'f',
'h'],columns=['one', 'two', 'three']]

df = df.reindex[['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']]

print df

Đầu ra của nó như sau -

         one        two      three
a   0.077988   0.476149   0.965836
b        NaN        NaN        NaN
c  -0.390208  -0.551605  -2.301950
d        NaN        NaN        NaN
e  -2.000303  -0.788201   1.510072
f  -0.930230  -0.670473   1.146615
g        NaN        NaN        NaN
h   0.085100   0.532791   0.887415

Sử dụng lập chỉ mục lại, chúng tôi đã tạo một DataFrame với các giá trị bị thiếu. Ở đầu ra, NaN có nghĩa là Không phải là Số

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

Để giúp phát hiện các giá trị bị thiếu dễ dàng hơn [và trên các kiểu mảng khác nhau], Pandas cung cấp các hàm isnull[] và notnull[], đây cũng là các phương thức trên các đối tượng Series và DataFrame -

Thí dụ

import pandas as pd
import numpy as np
 
df = pd.DataFrame[np.random.randn[5, 3], index=['a', 'c', 'e', 'f',
'h'],columns=['one', 'two', 'three']]

df = df.reindex[['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']]

print df['one'].isnull[]

Đầu ra của nó như sau -

a  False
b  True
c  False
d  True
e  False
f  False
g  True
h  False
Name: one, dtype: bool

Dọn dẹp/Điền dữ liệu bị thiếu

Pandas cung cấp các phương pháp khác nhau để làm sạch các giá trị còn thiếu. Hàm fillna có thể “điền vào” các giá trị NA với dữ liệu khác null theo một số cách mà chúng tôi đã minh họa trong các phần sau

Thay thế NaN bằng một giá trị vô hướng

Chương trình sau đây cho thấy cách bạn có thể thay thế "NaN" bằng "0"

import pandas as pd
import numpy as np
df = pd.DataFrame[np.random.randn[3, 3], index=['a', 'c', 'e'],columns=['one',
'two', 'three']]
df = df.reindex[['a', 'b', 'c']]
print df
print ["NaN replaced with '0':"]
print df.fillna[0]

Đầu ra của nó như sau -

         one        two     three
a  -0.576991  -0.741695  0.553172
b        NaN        NaN       NaN
c   0.744328  -1.735166  1.749580

NaN replaced with '0':
         one        two     three
a  -0.576991  -0.741695  0.553172
b   0.000000   0.000000  0.000000
c   0.744328  -1.735166  1.749580

Ở đây, chúng tôi đang điền vào giá trị bằng không;

Điền NA Tiến và lùi

Sử dụng các khái niệm điền được thảo luận trong Chương Lập chỉ mục lại, chúng tôi sẽ điền các giá trị còn thiếu

Phương thức Actionpad/fillFill Phương thức Forwardbfill/backfillFill Phương thức Backward

Thí dụ

import pandas as pd
import numpy as np

df = pd.DataFrame[np.random.randn[5, 3], index=['a', 'c', 'e', 'f',
'h'],columns=['one', 'two', 'three']]
df = df.reindex[['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']]

print df.fillna[method='pad']

Đầu ra của nó như sau -

         one        two      three
a   0.077988   0.476149   0.965836
b   0.077988   0.476149   0.965836
c  -0.390208  -0.551605  -2.301950
d  -0.390208  -0.551605  -2.301950
e  -2.000303  -0.788201   1.510072
f  -0.930230  -0.670473   1.146615
g  -0.930230  -0.670473   1.146615
h   0.085100   0.532791   0.887415

Bỏ các giá trị còn thiếu

Nếu bạn chỉ muốn loại trừ các giá trị bị thiếu, thì hãy sử dụng hàm dropna cùng với đối số axis. Theo mặc định, trục=0, i. e. , dọc theo hàng, có nghĩa là nếu bất kỳ giá trị nào trong một hàng là NA thì toàn bộ hàng đó sẽ bị loại trừ

Thí dụ

________số 8

Đầu ra của nó như sau -

         one        two      three
a   0.077988   0.476149   0.965836
c  -0.390208  -0.551605  -2.301950
e  -2.000303  -0.788201   1.510072
f  -0.930230  -0.670473   1.146615
h   0.085100   0.532791   0.887415

Thay thế các giá trị chung bị thiếu [hoặc]

Nhiều lần, chúng ta phải thay thế một giá trị chung bằng một số giá trị cụ thể. Chúng ta có thể đạt được điều này bằng cách áp dụng phương pháp thay thế

Làm sạch dữ liệu bằng 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.

Chuẩn bị dữ liệu trong Python là gì?

Chuẩn bị dữ liệu là quá trình làm sạch và chuyển đổi dữ liệu thô trước khi xử lý và phân tích . Đây là một bước quan trọng trước khi xử lý và thường liên quan đến việc định dạng lại dữ liệu, chỉnh sửa dữ liệu và kết hợp các bộ dữ liệu để làm phong phú dữ liệu.

Làm sạch và chuẩn bị dữ liệu là gì?

Làm sạch dữ liệu là quá trình sửa hoặc xóa dữ liệu không chính xác, bị hỏng, định dạng không đúng, trùng lặp hoặc không đầy đủ trong tập dữ liệu . Khi kết hợp nhiều nguồn dữ liệu, có nhiều khả năng dữ liệu bị trùng lặp hoặc dán nhãn sai.

Tại sao làm sạch dữ liệu trong Python?

Từ hình này, chúng ta có thể mô tả rằng Làm sạch dữ liệu là một kỹ thuật giúp chuyển đổi dữ liệu không phù hợp thành dữ liệu có ý nghĩa . Nói tóm lại, Machine Learning dựa trên dữ liệu. Với việc làm sạch dữ liệu tại chỗ, mô hình Machine Learning của bạn sẽ hoạt động tốt hơn. Vì vậy, điều quan trọng là phải xử lý dữ liệu trước khi sử dụng.

Chủ Đề