Python 是一種用於進行數據分析的出色語言,主要是因為以數據為中心的 Python 包的奇妙生態係統。 Pandas 就是其中之一,它使導入和分析數據變得更加容易。
有時 csv 文件有空值,稍後在 DataFrame 中顯示為 NaN。就像 Pandas 一樣dropna()
方法管理和刪除 DataFrame 中的空值,fillna()
管理並讓用戶用他們自己的一些值替換 NaN 值。
用法:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
參數:
value:Static, dictionary, array, series or dataframe to fill instead of NaN.
method: Method is used if user doesn’t pass any value. Pandas has different methods likebfill
,backfill
orffill
which fills the place with value in the Forward index or Previous/Back respectively.
axis:axis takes int or string value for rows/columns. Input can be 0 or 1 for Integer and ‘index’ or ‘columns’ for String
inplace:It is a boolean which makes the changes in data frame itself if True.
limit:This is an integer value which specifies maximum number of consequetive forward/backward NaN value fills.
downcast:It takes a dict which specifies what dtype to downcast to which one. Like Float64 to int64.
**kwargs: Any other Keyword arguments
有關代碼中使用的 CSV 文件的鏈接,請單擊此處。
範例1:用靜態值替換 NaN 值。
更換前:
# importing pandas module
import pandas as pd
# making data frame from csv file
nba = pd.read_csv("nba.csv")
nba
輸出:
更換後:
在以下示例中,College 列中的所有空值都已替換為 “No college” 字符串。首先,從 CSV 導入 DataFrame ,然後選擇 College 列並 fillna()
方法用於它。
# importing pandas module
import pandas as pd
# making data frame from csv file
nba = pd.read_csv("nba.csv")
# replacing na values in college with No college
nba["College"].fillna("No College", inplace = True)
nba
輸出:
範例2:使用方法參數
在以下示例中,method 設置為 ffill,因此同一列中的值替換空值。在這種情況下,Georgia State 替換了第 4 行和第 5 行大學列中的空值。同樣,也可以使用 bfill、backfill 和 pad 方法。
# importing pandas module
import pandas as pd
# making data frame from csv file
nba = pd.read_csv("nba.csv")
# replacing na values in college with No college
nba["College"].fillna( method ='ffill', inplace = True)
nba
輸出:
範例3:使用限製
在這個例子中,在 fillna() 方法中設置了 1 的限製,以檢查函數在成功替換一次 NaN 值後是否停止替換。
# importing pandas module
import pandas as pd
# making data frame from csv file
nba = pd.read_csv("nba.csv")
# replacing na values in college with No college
nba["College"].fillna( method ='ffill', limit = 1, inplace = True)
nba
輸出:
如輸出所示,第 4 行的大學列已被替換,但第 5 行未被替換,因為限製設置為 1。
相關用法
注:本文由純淨天空篩選整理自Kartikaybhutani大神的英文原創作品 Python | Pandas DataFrame.fillna() to replace Null values in dataframe。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。