Khi bạn nhận được tập dữ liệu, có thể có một số giá trị NaN. Pandas Dropna là một phương pháp hữu ích cho phép bạn loại bỏ các giá trị NaN của khung dữ liệu. Trong toàn bộ bài viết này, tôi sẽ chỉ cho bạn các ví dụ khác nhau về cách xử lý các giá trị NaN bằng phương thức drona[]
Cú pháp cho phương thức Pandas Dropna[]
your_dataframe.dropna[axis=0, how='any', thresh=None, subset=None, inplace=False]
giải thích thông số
axis : Requires two values 0 and 1. how: any or all value. If you use any, then all NaN rows or columns will be removed. thresh: Require that many non-NA values. subset : Labels along other axis to consider. inplace : Default is False. If it it set to True, then do operation inplace
Các bước để xóa NaN khỏi Dataframe bằng pandas dropna
Bước 1. Nhập tất cả các thư viện cần thiết
Trong các ví dụ của chúng tôi, Chúng tôi đang sử dụng NumPy để đặt các giá trị NaN và gấu trúc để tạo khung dữ liệu. Hãy nhập chúng
import numpy as np
import pandas as pd
Bước 2. Tạo một khung dữ liệu Pandas
Trong bước này, trước tiên tôi sẽ tạo một khung dữ liệu gấu trúc với các giá trị NaN. Có một phương pháp để tạo các giá trị NaN. Và đó là numpy. nan. Thực thi các dòng mã được cung cấp bên dưới để tạo Khung dữ liệu Pandas
Trong hàm tạo chuỗi pandas, phương thức có tên dropna[] được sử dụng để xóa các giá trị bị thiếu khỏi đối tượng chuỗi. Và nó không cập nhật đối tượng sê-ri ban đầu với các giá trị NaN đã bị xóa thay vì cập nhật đối tượng sê-ri ban đầu, nó sẽ trả về một đối tượng sê-ri khác với các giá trị được cập nhật
Các tham số của phương thức dropna[] là axis, inplace và how
ví dụ 1
# importing packages import pandas as pd import numpy as np # Creating Series objects sr = pd.Series[[42, np.nan, 55, 42, np.nan, 73, np.nan, 55, 76, 87], index=list["ABCDEFGHIJ"]] print['Series object:',sr] # Remove missing elements result = sr.dropna[] # display output print[result]
Giải trình
Ban đầu, chúng tôi đã tạo một Sê-ri gấu trúc với các giá trị chỉ mục được gắn nhãn và có một số giá trị Nan có trong đối tượng sê-ri. Sau khi tạo một đối tượng chuỗi gấu trúc, chúng tôi đã áp dụng phương thức dropna[] để xóa các giá trị bị thiếu
đầu ra
Series object: A 42.0 B NaN C 55.0 D 42.0 E NaN F 73.0 G NaN H 55.0 I 76.0 J 87.0 dtype: float64 A 42.0 C 55.0 D 42.0 F 73.0 H 55.0 I 76.0 J 87.0 dtype: float64
Trong khối đầu ra ở trên, chúng ta có thể thấy cả đối tượng chuỗi ban đầu và chuỗi kết quả. Đối tượng sê-ri thứ hai là đối tượng đầu ra với các giá trị bị thiếu đã bị xóa
ví dụ 2
# importing packages import pandas as pd import numpy as np dates = pd.date_range['2021-06-01', periods=10, freq='D'] #creating pandas Series with date index sr = pd.Series[[np.nan, 61, 72, 11, np.nan, 24, 56, 30, np.nan, 55], index=dates] print['Series object:',sr] # Remove missing elements result = sr.dropna[] # display output print[result]
Giải trình
Trong ví dụ sau, chúng tôi đã tạo một Sê-ri pandas với các giá trị chỉ mục phạm vi ngày và có một số giá trị Nan có trong đối tượng sê-ri “sr”. Sau khi tạo một đối tượng chuỗi gấu trúc, chúng tôi đã áp dụng phương thức dropna[] để xóa các giá trị Nan đó
đầu ra
Series object: 2021-06-01 NaN 2021-06-02 61.0 2021-06-03 72.0 2021-06-04 11.0 2021-06-05 NaN 2021-06-06 24.0 2021-06-07 56.0 2021-06-08 30.0 2021-06-09 NaN 2021-06-10 55.0 Freq: D, dtype: float64 2021-06-02 61.0 2021-06-03 72.0 2021-06-04 11.0 2021-06-06 24.0 2021-06-07 56.0 2021-06-08 30.0 2021-06-10 55.0 dtype: float64
Ở đây, chúng tôi có một đối tượng sê-ri mới với các giá trị Nan đã bị xóa. Trong khối đầu ra ở trên, chúng ta có thể thấy cả đối tượng chuỗi ban đầu và chuỗi kết quả. Đối tượng đầu tiên là chuỗi ban đầu và đối tượng thứ hai là đầu ra của phương thức dropna[]
Để loại bỏ các giá trị còn thiếu tôi. e. các giá trị NaN, hãy sử dụng phương thức dropna[]. Đầu tiên, chúng ta hãy nhập thư viện cần thiết -
import pandas as pd
Đọc CSV và tạo DataFrame -
________số 8_______Sử dụng dropna[] để xóa các giá trị còn thiếu. NaN sẽ được hiển thị cho các giá trị bị thiếu sau khi dropna[] được sử dụng -
Trên thực tế, phần lớn các bộ dữ liệu được thu thập chứa các giá trị bị thiếu do lỗi thủ công, không có sẵn thông tin, v.v. Mặc dù có nhiều cách khác nhau để xử lý các giá trị bị thiếu, nhưng đôi khi bạn không có lựa chọn nào khác ngoài việc loại bỏ các hàng đó khỏi tập dữ liệu. Một phương pháp phổ biến để thả hàng và cột là sử dụng hàm `dropna` của gấu trúc
Trong bài viết này, bạn sẽ tìm hiểu về các chức năng khác nhau của phương thức này để loại bỏ các hàng có giá trị bị thiếu, sau đó là một số mẹo thiết thực để sử dụng phương thức
print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
9 của gấu trúcTạo một khung dữ liệu cơ bản
import pandas as pd
# Create the data of the DataFrame as a dictionary
data_dict = {'Name': ['Ankit', 'Aman', 'Riya', 'Ayush', 'Anushka'],
'ID': [4001, 4002, np.nan, np.nan, 4010], # Use np.nan to create missing values
'Department': ['Technical', np.nan, np.nan, np.nan, 'Marketing'],
'Qualification': [np.nan, np.nan, np.nan, np.nan, 'M.A.']}
# Create the DataFrame
df = pd.DataFrame[data_dict]
df
Chức năng dropna của gấu trúc
- cú pháp. gấu trúc. Khung dữ liệu. dropna[axis = 0, how =’bất kỳ’, thresh = Không, tập hợp con = Không, inplace=False]
- Mục đích. Để xóa các giá trị còn thiếu khỏi DataFrame
- Thông số
- trục. 0 hoặc 1 [mặc định. 0]. Chỉ định hướng theo đó các giá trị bị thiếu sẽ được tìm kiếm. Truyền giá trị 0 cho tham số này tìm kiếm xuống các hàng. Chuyển giá trị 1 cho tham số này để xem qua các cột
- Làm sao. 'bất kỳ' hoặc 'tất cả' [mặc định. 'bất kỳ']. Nếu nó được đặt thành 'bất kỳ', hàng/cột có ít nhất một giá trị bị thiếu sẽ bị loại bỏ. Nếu nó được đặt thành 'tất cả', thì chỉ những hàng/cột thiếu tất cả các giá trị sẽ bị loại bỏ
- tuốt lúa. Số nguyên [mặc định. Không có]. Số giá trị bị thiếu tối đa trong một hàng hoặc cột sẽ bị hàm này bỏ qua
- tập hợp con. mảng [mặc định. Không có]. Nó được sử dụng để chỉ định các nhãn cụ thể dọc theo trục không được chỉ định trong tham số trục trong đó các giá trị bị thiếu sẽ được tìm kiếm
- thay thế. Boolean [mặc định. Sai]. Biểu thị nếu các giá trị bị thiếu sẽ bị loại bỏ trong DataFrame gốc hoặc nếu một DataFrame mới có các giá trị bị thiếu sẽ được trả lại
- trả lại. Nếu tại chỗ được đặt thành 'True' thì Không có. Nếu nó được đặt thành 'Sai', thì DataFrame
Giảm các hàng có ít nhất 1 giá trị bị thiếu
Để xóa tất cả các hàng có ít nhất một giá trị bị thiếu, giá trị của tham số trục phải là 0 và tham số cách được đặt thành 'bất kỳ'. Vì đây là các giá trị mặc định của tham số nên bạn không cần truyền bất kỳ đối số nào cho hàm. Đây là usecase đơn giản nhất của hàm gấu trúc
print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
9print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows having missing values:
Name ID Department Qualification
4 Anushka 4010.0 Marketing M.A.
Xoá các cột có ít nhất 1 giá trị bị thiếu
Để xóa tất cả các cột có ít nhất một giá trị bị thiếu, hãy chuyển giá trị 1 cho tham số trục thành
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows having missing values:
Name ID Department Qualification
4 Anushka 4010.0 Marketing M.A.
1print['Original DataFrame:']
print[df]
print['\n']
# Drop all columns that have at least one missing value
print['DataFrame after dropping the columns having missing values:']
print[df.dropna[axis=1]]
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the columns having missing values:
Name
0 Ankit
1 Aman
2 Riya
3 Ayush
4 Anushka
Chỉ bỏ hàng hoặc cột khi tất cả các giá trị là null
Với sự trợ giúp của chức năng này, bạn cũng có thể xóa tất cả các hàng và cột có tất cả các giá trị là giá trị null
Bỏ tất cả các hàng có tất cả các giá trị là giá trị null
data_dict = {'Name': ['Ankit', 'Aman', np.nan, 'Ayush', 'Anushka'],
'ID': [4001, 4002, np.nan, np.nan, 4010],
'Department': ['Technical', np.nan, np.nan, np.nan, 'Marketing'],
'Qualification': [np.nan, np.nan, np.nan, np.nan, 'M.A.']}
df = pd.DataFrame[data_dict]
df
Để loại bỏ tất cả các hàng chỉ chứa các giá trị bị thiếu, hãy chuyển giá trị 0 cho tham số trục và đặt giá trị _______13_______2.
print['Original DataFrame:']
print[df]
print['\n']
# Drop only those rows where all the row values are null values
print['DataFrame after dropping the rows where all the values were null values:']
print[df.dropna[axis=0, how='all']]
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows where all the values were null values:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
Ở đây, không có cột nào chứa giá trị bị thiếu trong tất cả các cột. Do đó, không có hàng nào bị loại bỏ
Bỏ tất cả các cột trong đó tất cả các giá trị là giá trị null
Trong các trường hợp cụ thể, bạn có thể gặp các cột chứa đầy giá trị rỗng [thông tin không được thu thập]. Những điều này chắc chắn phải được bỏ
data_dict = {'Name': ['Ankit', 'Aman', 'Riya', 'Ayush', 'Anushka'],
'ID': [4001, 4002, np.nan, np.nan, 4010],
'Department': ['Technical', np.nan, np.nan, np.nan, 'Marketing'],
'Qualification': [np.nan, np.nan, np.nan, np.nan, np.nan]}
df = pd.DataFrame[data_dict]
df
Để loại bỏ tất cả các cột chỉ chứa các giá trị bị thiếu, hãy chuyển giá trị 1 cho tham số trục và giá trị 'tất cả' cho tham số cách.
print['Original DataFrame:']
print[df]
print['\n']
# Drop only those columns where all values are null values
print['DataFrame after dropping the columns where all the values were null values:']
print[df.dropna[axis=1, how='all']]
print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
0Làm cách nào để loại bỏ các hàng/cột chứa các giá trị bị thiếu trên một ngưỡng nhất định?
Trong một số trường hợp nhất định, bạn không muốn loại bỏ một hàng có rất ít giá trị bị thiếu, vì vậy pandas
print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
9 cung cấp cho bạn tùy chọn để đặt ngưỡng. Để chỉ xóa những hàng hoặc cột thiếu giá trị trên một ngưỡng nhất định, bạn cần chuyển một giá trị ngưỡng cho tham số ngưỡngTham số `thresh` biểu thị số lượng giá trị không bị thiếu cần thiết để giữ lại hàng/cột
print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
1print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
2Xoá hàng nếu các giá trị bị thiếu chỉ xuất hiện trong các cột cụ thể
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows having missing values:
Name ID Department Qualification
4 Anushka 4010.0 Marketing M.A.
4 cũng cung cấp cho bạn tùy chọn xóa các hàng bằng cách tìm kiếm các giá trị rỗng hoặc bị thiếu trên các cột được chỉ địnhĐể tìm kiếm các giá trị null trong các cột cụ thể, hãy chuyển tên cột cho tham số tập hợp con. Nó có thể lấy danh sách tên cột hoặc vị trí cột
print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
3_______9_______4Hãy nhìn vào các tên cột
print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
5print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
6Những mẹo có ích
- Trong trường hợp hạn chế về bộ nhớ, hãy sử dụng tham số inplace. Đặt giá trị của nó là True để các thay đổi sẽ diễn ra trong chính DataFrame ban đầu và DataFrame mới sẽ không được tạo
- Xin lưu ý rằng trong khi thả hàng hoặc cột bằng cách sử dụng tham số cách và đặt giá trị của nó là 'tất cả' , hàm sẽ chỉ xóa những nhãn có tất cả giá trị của nó bị thiếu hoặc giá trị null
- Trong khi xóa cột, bạn cũng có thể chuyển nhãn hàng cho tham số tập hợp con để tìm kiếm các hàng chứa giá trị bị thiếu
Thí dụ
Nhận khóa học Python hoàn chỉnh miễn phí
Đối mặt với tình huống tương tự như những người khác?
Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị
Nhận khóa học Python hoàn chỉnh miễn phí
Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị
print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
7print['Original DataFrame:']
print[df]
print['\n']
# Default configuration drops rows having at least 1 missing value
print['DataFrame after dropping the rows having missing values:']
print[df.dropna[]]
8Phần kết luận
Trong bài viết này, bạn đã học về pandas dropna bằng cách sử dụng
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows having missing values:
Name ID Department Qualification
4 Anushka 4010.0 Marketing M.A.
4 và sử dụng các tham số khác nhau của nó như tập hợp con, cách thức và đập. Nếu bạn muốn tìm hiểu thêm về các chức năng khác nhau của thư viện pandas, hãy xem 101 Bài tập Pandas về Phân tích Dữ liệuChúng tôi cũng đã có khóa học Pandas cho Khoa học dữ liệu toàn diện nhất bao gồm Pandas chuyên sâu
Kiểm tra kiến thức của bạn
Q1. Cấu hình mặc định của
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows having missing values:
Name ID Department Qualification
4 Anushka 4010.0 Marketing M.A.
4 xóa tất cả các hàng có giá trị bị thiếu khỏi DataFrame. Đúng hay sai?Câu trả lờiCâu trả lời. Thật
quý 2. Tham số nào được sử dụng để chỉ định nhãn hàng hoặc cột sẽ được đưa vào khi xóa giá trị bị thiếu?
Câu trả lời. Hàm tập hợp con
Q3. Viết mã để loại bỏ các hàng có nhiều hơn hai giá trị bị thiếu khỏi DataFrame df
Câu trả lờiCâu trả lời.
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows having missing values:
Name ID Department Qualification
4 Anushka 4010.0 Marketing M.A.
7Q4. Viết mã để chỉ xóa các cột đó khỏi DataFrame chỉ chứa các giá trị null
Câu trả lờiCâu trả lời.
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows having missing values:
Name ID Department Qualification
4 Anushka 4010.0 Marketing M.A.
8Q5. Viết mã để xóa các hàng khỏi DataFrame df, đặc biệt là trong các hàng có giá trị của cột 'col_3' là null
Câu trả lờiCâu trả lời.
Original DataFrame:
Name ID Department Qualification
0 Ankit 4001.0 Technical NaN
1 Aman 4002.0 NaN NaN
2 Riya NaN NaN NaN
3 Ayush NaN NaN NaN
4 Anushka 4010.0 Marketing M.A.
DataFrame after dropping the rows having missing values:
Name ID Department Qualification
4 Anushka 4010.0 Marketing M.A.
9Bài viết được đóng góp bởi Shreyansh B và Shri Varsheni
MáyHọcPlus
Machine Learning Plus được tạo thành từ một nhóm những người nhiệt tình đam mê Khoa học dữ liệu. Họ giúp các Nhà phát triển, Nhà quản lý doanh nghiệp và Nhà khoa học dữ liệu tuyệt vời trở nên giỏi hơn trong công việc của họ