Phương thức pandas.DataFrame.fillna () được sử dụng để điền vào cột (một hoặc nhiều cột) chứa NA / NaN / None với 0, trống, trống hoặc bất kỳ giá trị được chỉ định nào, v.v. NaN được coi là một giá trị bị thiếu. Khi bạn xử lý máy học, việc xử lý các giá trị bị thiếu là rất quan trọng, không xử lý các giá trị này sẽ dẫn đến tác dụng phụ với kết quả không chính xác. Show Tệp CSV nhận được từ các nguồn của bên thứ ba, hầu hết thời gian nó có giá trị null cho khoảng trống / trống. Bằng cách sử dụng pandas.read_csv (), chúng tôi có thể tải tệp CSV vào DataFrame và pandas chuyển đổi tất cả các giá trị null thành NaN trong DataFrame. Bạn có thể thả các hàng có giá trị NaN bằng pandas.DataFrame.dropna () hoặc xử lý NaN bằng cách điền các giá trị cụ thể bằng phương thức fillna (). pandas fillna Key Points
Liên quan: gấu trúc thả hàng & cột với NaN bằng cách sử dụng dropna ()
1. Ví dụ nhanh về pandas fillna ()Dưới đây là các ví dụ nhanh về cung và cách sử dụng phương thức pandas fillna (). # fillna() on all columns df2=df.fillna('None') # fillna() on once column df2['Discount'] = df['Discount'].fillna(0) # fillna() on multiple columns df2[['Discount','Fee']] = df[['Discount','Fee']].fillna(0) # fillna() on multiple columns with different values df2 = df.fillna(value={'Discount':0,'Fee':10000}) # fill with limit df2=df.fillna(value={'Discount':0,'Fee':0},limit=1) Dưới đây là cú pháp của phương thức pandas.DataFrame.fillna (). Điều này nhận giá trị tham số, phương thức, trục, vị trí, giới hạn và truyền xuống và trả về một DataFrame mới. Khi inplace = True được sử dụng, nó trả về Không có khi thay thế xảy ra trên đối tượng DataFrame hiện có. # Syntax of pandas.DataFrame.fillna() DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
Hãy tạo một DataFrame # Create DataFrame import pandas as pd import numpy as np df = pd.DataFrame(({ 'Courses':["Spark",'Java',"Scala",'Python'], 'Fee' :[20000,np.nan,26000,24000], 'Duration':['30days','40days','NA','40days'], 'Discount':[1000,np.nan,2500,None] })) print(df) 3. pandas fillna NaN với Không giá trịPhương thức fillna () được sử dụng để điền các giá trị NaN / NA trên một cột được chỉ định hoặc trên toàn bộ DataaFrame với bất kỳ giá trị nhất định nào. Bạn có thể chỉ định sửa đổi bằng cách sử dụng tại chỗ hoặc giới hạn số lần điền để thực hiện hoặc chọn một trục có điền vào các hàng / cột hay không, v.v. Ví dụ Dưới đây điền vào tất cả các giá trị NaN bằng Không có giá trị nào. # fillna to replace all NaN df2=df.fillna('None') print(df2) # Outputs # Courses Fee Duration Discount #0 Spark 20000.0 30days 1000.0 #1 Java None 40days None #2 Scala 26000.0 None 2500.0 #3 Python 24000.0 40days None Để cập nhật việc sử dụng DataFrame hiện có df.fillna(‘None’, inplace=True). Bạn cũng có thể sử dụng phương thức pandas.DataFrame.replace () để thay thế NaN bằng giá trị 0. tương tự, bạn cũng có thể thay thế NaN bằng chuỗi trống hoặc chuỗi trống. 4. gấu trúc điền vào một cộtVí dụ trên đã điền tất cả các giá trị NaN trên toàn bộ DataFrame. đôi khi bạn chỉ cần thay thế trên một cột, bạn có thể làm như vậy bằng cách chọn cột DataFrame cho phương thức fillna (). # fillna on one column df2['Discount'] = df['Discount'].fillna('0') print(df2) # Outputs # Courses Fee Duration Discount #0 Spark 20000.0 30days 1000.0 #1 Java None 40days 0 #2 Scala 26000.0 None 2500.0 #3 Python 24000.0 40days 0 5. điền vào nhiều cộtSử dụng phương thức pandas fillna () để điền một giá trị được chỉ định trên nhiều cột DataFrame, các cột cập nhật ví dụ bên dưới Discount và Fee 0 cho các giá trị NaN. # fillna() on multiple columns df2[['Discount','Fee']] = df[['Discount','Fee']].fillna('0') print(df2) #Outputs Courses Fee Duration Discount 0 Spark 20000.0 30days 1000.0 1 Java 0 40days 0 2 Scala 26000.0 None 2500.0 3 Python 24000.0 40days 0 Bây giờ, hãy xem cách điền giá trị khác nhau cho mỗi cột. Cột cập nhật ví dụ dưới đây Discount 0 và cột Fee 10000 cho các giá trị NaN. # fillna() on multiple columns df2 = df.fillna(value={'Discount':'0','Fee':10000}) print(df2) # Outputs # Courses Fee Duration Discount #0 Spark 20000.0 30days 1000.0 #1 Java 10000.0 40days 0 #2 Scala 26000.0 NaN 2500.0 #3 Python 24000.0 40days 0 6. Điền với thông số giới hạnĐể kiểm soát cách điền các giá trị NaN, hãy sử dụng limit tham số. So sánh kết quả dưới đây với kết quả trên để thấy sự khác biệt. # fill with limit df2=df.fillna(value={'Discount':0,'Fee':0},limit=1) print(df2) # Outputs # Courses Fee Duration Discount #0 Spark 20000.0 30days 1000.0 #1 Java 0.0 40days 0.0 #2 Scala 26000.0 NaN 2500.0 #3 Python 24000.0 40days NaN 7. Hoàn thành Ví dụ về pandas fillnaimport pandas as pd import numpy as np df = pd.DataFrame(({ 'Courses':["Spark",'Java',"Scala",'Python'], 'Fee' :[20000,np.nan,26000,24000], 'Duration':['30days','40days',np.nan,'40days'], 'Discount':[1000,np.nan,2500,None] })) print(df) # fillna() on all columns df2=df.fillna('None') print(df2) # fillna() on once column df2['Discount'] = df['Discount'].fillna(0) print(df2) # fillna() on multiple columns df2[['Discount','Fee']] = df[['Discount','Fee']].fillna(0) print(df2) # fillna() on multiple columns df2 = df.fillna(value={'Discount':0,'Fee':10000}) print(df2) # fill with limit df2=df.fillna(value={'Discount':0,'Fee':0},limit=1) print(df2) Sự kết luậnTrong bài này, bạn đã học phương thức DataFrame fillna () để điền vào một cột, nhiều cột chứa NaN với một giá trị xác định. Cũng đã học cách thay thế các giá trị khác nhau cho mỗi cột. Học vui vẻ !! Người giới thiệu |