Python Pandas DataFrame.fillna() 替换数据框架中的空值
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
有时csv文件中有空值,这些空值后来在数据框中显示为NaN。就像pandas dropna()方法管理并从数据框中移除空值一样,fillna()方法管理并让用户用自己的一些值替换NaN值。
语法:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, kwargs)
参数:
value : 静态的、字典的、数组的、系列的或数据框架的,以代替NaN。
method : 如果用户没有传递任何值,则使用该方法。Pandas有不同的方法,如bfill、backfill或fill,它们分别用前向索引或前向/后向的值来填充位置。
axis: axis为行/列接受int或字符串值。整数的输入可以是0或1,字符串的输入可以是 “index “或 “columns”。
inplace。这是一个布尔值,如果为 “真”,则在数据框本身中进行更改。
limit : 这是一个整数,它指定了前向/后向NaN值填充的最大数量。
downcast : 它需要一个dict,指定什么类型的数据要下移到哪个类型。如Float64到int64。
**kwargs 。任何其他的关键字参数
例子#1:用静态值替换NaN值。
Before replacing:
# importing pandas module
import pandas as pd
# making data frame from csv file
nba = pd.read_csv("nba.csv")
nba
输出:

After replacing:
在下面的例子中,学院列中的所有空值都被替换为 “无学院 “字符串。首先,从CSV导入数据框架,然后选择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:使用方法参数
在下面的例子中,方法被设置为ffill,因此同一列中的值取代了空值。在这个例子中,乔治亚州取代了第4行和第5行的大学列的空值。
同样地,也可以使用bfill、回填和垫层方法。
# 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。

极客教程