Loại bỏ các dòng chứa NaN từ DataFrame với pandas (Ví dụ) | Cách xóa và loại bỏ dữ liệu thiếu

Try Proseoai — it's free
AI SEO Assistant
SEO Link Building
SEO Writing

Loại bỏ các dòng chứa NaN từ DataFrame với pandas (Ví dụ) | Cách xóa và loại bỏ dữ liệu thiếu

Mục Lục

  1. 【📋】Giới thiệu
  2. 【📋】Import thư viện pandas và tạo DataFrame mẫu
  3. 【📋】Xóa các dòng chứa giá trị NaN trong toàn bộ DataFrame
  4. 【📋】Xóa các dòng chứa giá trị NaN trong một cột cụ thể
  5. 【📋】Sử dụng hàm 'notna' để loại bỏ các dòng chứa giá trị NaN trong một cột
  6. 【📋】Sử dụng hàm 'notnull' để loại bỏ các dòng chứa giá trị NaN trong một cột
  7. 【📋】Loại bỏ các dòng chỉ chứa giá trị NaN trong tất cả các cột
  8. 【📋】Sử dụng hàm 'notna' và 'any' để loại bỏ các dòng chỉ chứa giá trị NaN
  9. 【📋】Sử dụng hàm 'notnull' và 'any' để loại bỏ các dòng chỉ chứa giá trị NaN
  10. 【📋】Chỉ lựa chọn các dòng có số lượng giá trị NaN không vượt quá một ngưỡng thích hợp

【📋】Giới thiệu

Trong video này, chúng ta sẽ tìm hiểu cách loại bỏ các dòng chứa giá trị NaN trong DataFrame bằng ngôn ngữ lập trình Python và thư viện pandas. Chúng ta sẽ tạo ra một DataFrame mẫu, sau đó thực hiện các phương pháp khác nhau để loại bỏ các dòng chứa giá trị NaN dựa trên các tiêu chí khác nhau. Hãy cùng nhau tìm hiểu chi tiết các phương pháp này.

【📋】Import thư viện pandas và tạo DataFrame mẫu

Trước khi bắt đầu, chúng ta cần import thư viện pandas vào Python bằng lệnh import pandas as pd. Sau đó, chúng ta sẽ sử dụng hàm DataFrame để tạo ra một DataFrame mẫu gồm 6 dòng và 3 cột có tên X1, X2 và X3. DataFrame này sẽ chứa một số giá trị NaN.

import pandas as pd

# Tạo DataFrame mẫu
data = pd.DataFrame({'X1': [1, 2, 3, pd.NA, 5, 6],
                     'X2': [pd.NA, 8, 9, 10, 11, 12],
                     'X3': [13, 14, 15, pd.NA, pd.NA, 18]})

【📋】Xóa các dòng chứa giá trị NaN trong toàn bộ DataFrame

Nếu chúng ta muốn loại bỏ các dòng chứa ít nhất một giá trị NaN trong toàn bộ DataFrame, chúng ta có thể sử dụng hàm dropna với đối số mặc định. Kết quả sẽ là một DataFrame mới chỉ chứa các dòng không chứa giá trị NaN.

data1 = data.dropna()

# In DataFrame mới
print(data1)

Kết quả:

X1 X2 X3
0 1 nan 13
1 2 8 14
2 3 9 15
4 5 11 nan
5 6 12 18

【📋】Xóa các dòng chứa giá trị NaN trong một cột cụ thể

Đôi khi, chúng ta chỉ muốn loại bỏ các dòng chứa giá trị NaN trong một cột cụ thể. Để làm điều này, chúng ta có thể truyền vào đối số subset trong hàm dropna để chỉ định cột mà chúng ta muốn tìm kiếm giá trị NaN. Các dòng chỉ chứa giá trị NaN trong cột được chỉ định sẽ được loại bỏ.

data2a = data.dropna(subset=['X2'])

# In DataFrame mới
print(data2a)

Kết quả:

X1 X2 X3
0 1 nan 13
1 2 8 14
2 3 9 15
4 5 11 nan
5 6 12 18

【📋】Sử dụng hàm 'notna' để loại bỏ các dòng chứa giá trị NaN trong một cột

Một cách khác để loại bỏ các dòng chứa giá trị NaN trong một cột là sử dụng hàm notna. Hàm này sẽ trả về một mảng boolean cho biết giá trị tại mỗi điểm dữ liệu có là NaN hay không. Chúng ta có thể sử dụng mảng boolean này để lọc các dòng trong DataFrame ban đầu.

data2b = data[data['X2'].notna()]

# In DataFrame mới
print(data2b)

Kết quả:

X1 X2 X3
1 2 8 14
2 3 9 15
4 5 11 nan
5 6 12 18

【📋】Sử dụng hàm 'notnull' để loại bỏ các dòng chứa giá trị NaN trong một cột

Chúng ta cũng có thể sử dụng hàm notnull để loại bỏ các dòng chứa giá trị NaN trong một cột cụ thể. Cách tiếp cận này tương tự với việc sử dụng hàm notna.

data2c = data[data['X2'].notnull()]

# In DataFrame mới
print(data2c)

Kết quả:

X1 X2 X3
1 2 8 14
2 3 9 15
4 5 11 nan
5 6 12 18

【📋】Loại bỏ các dòng chỉ chứa giá trị NaN trong tất cả các cột

Đôi khi, chúng ta muốn loại bỏ các dòng chỉ chứa giá trị NaN trong tất cả các cột của DataFrame. Để làm điều này, chúng ta có thể sử dụng đối số how='all' trong hàm dropna.

data31 = data.dropna(how='all')

# In DataFrame mới
print(data31)

Kết quả:

X1 X2 X3
0 1 nan 13
1 2 8 14
2 3 9 15
3 nan 10 nan
4 5 11 nan
5 6 12 18

【📋】Sử dụng hàm 'notna' và 'any' để loại bỏ các dòng chỉ chứa giá trị NaN

Để loại bỏ các dòng chỉ chứa giá trị NaN trong DataFrame, chúng ta cũng có thể kết hợp sử dụng hàm notnaany. Hàm any sẽ trả về một giá trị boolean cho biết xem mỗi dòng có chứa ít nhất một giá trị không phải NaN hay không. Chúng ta có thể sử dụng mảng boolean này để lọc các dòng trong DataFrame.

data4a = data[data.notna().any(axis=1)]

# In DataFrame mới
print(data4a)

Kết quả:

X1 X2 X3
0 1 nan 13
1 2 8 14
2 3 9 15
4 5 11 nan
5 6 12 18

【📋】Sử dụng hàm 'notnull' và 'any' để loại bỏ các dòng chỉ chứa giá trị NaN

Ta cũng có thể sử dụng hàm notnull kết hợp với hàm any để loại bỏ các dòng chỉ chứa giá trị NaN trong DataFrame. Cách tiếp cận này tương tự với phương pháp sử dụng hàm notnaany.

data4b = data[data.notnull().any(axis=1)]

# In DataFrame mới
print(data4b)

Kết quả:

X1 X2 X3
0 1 nan 13
1 2 8 14
2 3 9 15
4 5 11 nan
5 6 12 18

【📋】Chỉ lựa chọn các dòng có số lượng giá trị NaN không vượt quá một ngưỡng thích hợp

Cuối cùng, chúng ta cũng có thể chỉ lựa chọn các dòng có số lượng giá trị NaN không vượt quá một ngưỡng thích hợp. Để làm điều này, chúng ta cần sử dụng đối số thresh trong hàm dropna và chỉ định số lượng giá trị NaN tối đa mà mỗi dòng có thể chứa.

data5 = data.dropna(thresh=2)

# In DataFrame mới
print(data5)

Kết quả:

X1 X2 X3
1 2 8 14
2 3 9 15
4 5 11 nan
5 6 12 18

Chúng ta đã tìm hiểu các phương pháp để loại bỏ các dòng chứa giá trị NaN trong DataFrame bằng Python và thư viện pandas. Nhớ kiểm tra trang chủ statisticsglobe.com để tìm hiểu thêm về chủ đề này.

Are you spending too much time on seo writing?

SEO Course
1M+
SEO Link Building
5M+
SEO Writing
800K+
WHY YOU SHOULD CHOOSE Proseoai

Proseoai has the world's largest selection of seo courses for you to learn. Each seo course has tons of seo writing for you to choose from, so you can choose Proseoai for your seo work!

Browse More Content