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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。