/ / Cách điền vào dữ liệu bị thiếu bằng Python pandas

Cách điền vào dữ liệu bị thiếu bằng Python pandas

Việc làm sạch dữ liệu chắc chắn tốn rất nhiều thời gian trong khoa học dữ liệu và việc thiếu dữ liệu là một trong những thách thức bạn sẽ phải đối mặt thường xuyên. pandas là một công cụ thao tác dữ liệu Python có giá trị giúp bạn sửa các giá trị bị thiếu trong tập dữ liệu của mình, trong số những thứ khác.

Bạn có thể sửa dữ liệu bị thiếu bằng cách bỏ hoặc điền chúng bằng các giá trị khác. Trong bài viết này, chúng tôi sẽ giải thích và khám phá các cách khác nhau để lấp đầy dữ liệu bị thiếu bằng cách sử dụng gấu trúc.

1. Sử dụng phương thức fillna ():

Các fillna () hàm lặp qua tập dữ liệu của bạn và điền vào tất cả các hàng rỗng với một giá trị được chỉ định. Nó chấp nhận một số đối số tùy chọn — lưu ý những đối số sau:

Giá trị: Đây là giá trị bạn muốn chèn vào các hàng còn thiếu.

Phương pháp: Cho phép bạn điền các giá trị còn thiếu về phía trước hoặc ngược lại. Nó chấp nhận một ‘bfill’ hoặc là ‘làm đầy’ tham số.

Tại chỗ: Điều này chấp nhận một câu lệnh điều kiện. Nếu Đúng, nó sẽ sửa đổi DataFrame vĩnh viễn. Nếu không, nó không.

Trước khi chúng tôi bắt đầu, hãy đảm bảo rằng bạn cài đặt gấu trúc vào môi trường ảo Python của mình bằng cách sử dụng pip trong thiết bị đầu cuối của bạn:

pip install pandas

Tiếp theo, bên trong tập lệnh Python, chúng ta sẽ tạo một DataFrame thực hành và chèn các giá trị null (Nan) thành một số hàng:

import pandas
df = pandas.DataFrame({'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]})

Liên quan: Cách nhập dữ liệu Excel vào tập lệnh Python bằng gấu trúc

Bây giờ, hãy kiểm tra cách bạn có thể điền các giá trị bị thiếu này bằng các phương pháp có sẵn khác nhau trong gấu trúc.

Lấp đầy các giá trị còn thiếu bằng giá trị trung bình, trung vị hoặc chế độ

Phương pháp này liên quan đến việc thay thế các giá trị bị thiếu bằng các giá trị trung bình được tính toán. Việc điền dữ liệu bị thiếu bằng giá trị trung bình hoặc giá trị trung bình có thể áp dụng khi các cột liên quan có kiểu dữ liệu số nguyên hoặc số thực.

Bạn cũng có thể điền vào dữ liệu bị thiếu bằng giá trị chế độ, đây là giá trị xuất hiện nhiều nhất. Điều này cũng có thể áp dụng cho số nguyên hoặc số thực. Nhưng sẽ tiện hơn khi các cột được đề cập có chứa chuỗi.

Dưới đây là cách chèn giá trị trung bình và giá trị trung bình vào các hàng bị thiếu trong DataFrame mà bạn đã tạo trước đó:

#To insert the mean value of each column into its missing rows: 
df.fillna(df.mean().round(1), inplace=True)
#For median:
df.fillna(df.median().round(1), inplace=True)
print(df)

Việc chèn giá trị phương thức như bạn đã làm cho giá trị trung bình và giá trị trung bình ở trên không nắm bắt được toàn bộ DataFrame. Nhưng bạn có thể chèn nó vào một cột cụ thể thay vào đó, chẳng hạn như cột C:

df['C'].fillna(df['C'].mode()[0], inplace=True)

Như đã nói, vẫn có thể chèn giá trị phương thức của mỗi cột trên các hàng bị thiếu của nó cùng một lúc bằng vòng lặp for:

for i in df.columns:
df[i].fillna(df[i].mode()[0], inplace=True)
print(df)

Nếu bạn muốn cụ thể hóa từng cột trong khi chèn giá trị trung bình, giá trị trung bình hoặc chế độ:

df.fillna({"A":df['A'].mean(), 
"B": df['B'].median(),
"C": df['C'].mode()[0]},
inplace=True)
print(df)

Điền vào các hàng rỗng với các giá trị bằng cách sử dụng điền

Điều này liên quan đến việc chỉ định phương thức điền bên trong là fillna () chức năng. Phương thức này điền vào mỗi hàng bị thiếu bằng giá trị của hàng gần nhất ở trên nó.

Bạn cũng có thể gọi nó là điền chuyển tiếp:

df.fillna(method='ffill', inplace=True)

Điền vào các hàng còn thiếu với các giá trị bằng cách sử dụng bfill

Tại đây, bạn sẽ thay thế làm đầy phương pháp được đề cập ở trên với bfill. Nó điền vào mỗi hàng bị thiếu trong DataFrame với giá trị gần nhất bên dưới nó.

Cái này được gọi là điền lùi:

df.fillna(method='bfill', inplace=True)

2. Phương thức Replace ()

Bạn có thể thay thế Nan giá trị trong một cột cụ thể với giá trị trung bình, giá trị trung bình, chế độ hoặc bất kỳ giá trị nào khác.

Liên quan: Các lệnh gấu trúc để thao tác với DataFrames

Xem cách này hoạt động bằng cách thay thế các hàng rỗng trong một cột được đặt tên bằng giá trị trung bình, giá trị trung bình hoặc chế độ của nó:

import pandas
import numpy #this requires that you've previously installed numpy
#Replace the null values with the mean:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Replace column A with the median:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Use the modal value for column C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
print(df)

3. Lấp đầy dữ liệu bị thiếu bằng interpolate ()

Các nội suy () hàm sử dụng các giá trị hiện có trong DataFrame để ước tính các hàng bị thiếu.

Chạy mã sau để xem cách này hoạt động như thế nào:

#Interpolate backwardly across the column:
df.interpolate(method ='linear', limit_direction ='backward', inplace=True)
#Interpolate in forward order across the column:
df.interpolate(method ='linear', limit_direction ='forward', inplace=True)

Xử lý các hàng bị thiếu một cách cẩn thận

Mặc dù chúng tôi chỉ xem xét việc lấp đầy dữ liệu bị thiếu bằng các giá trị mặc định như giá trị trung bình, chế độ và các phương pháp khác, nhưng các kỹ thuật khác vẫn tồn tại để sửa các giá trị bị thiếu. Ví dụ, các nhà khoa học dữ liệu đôi khi loại bỏ các hàng bị thiếu này, tùy thuộc vào từng trường hợp.

Hơn nữa, điều cần thiết là phải suy nghĩ chín chắn về chiến lược của bạn trước khi sử dụng nó. Nếu không, bạn có thể nhận được kết quả phân tích hoặc dự đoán không mong muốn. Một số chiến lược trực quan hóa dữ liệu ban đầu có thể hữu ích.


hình ảnh đồ thị
Cách vẽ đồ thị trong Máy tính xách tay Jupyter

Hiển thị dữ liệu của bạn với đồ thị Máy tính xách tay Jupyter.

Đọc tiếp


Giới thiệu về tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *