Pandas 数据帧fillna()方法

原文:https://www.studytonight.com/pandas/pandas-dataframe-fillna-method

在本教程中,我们将学习 PandasDataFrame.fillna() 。此方法使用指定的方法填充 NA/NaN 值。它返回填充了缺失值的数据帧对象,如果是inplace=True,则返回None

下图显示了DataFrame.fillna()方法的语法。

句法

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

因素

值:标量、字典、序列或数据帧。用于填充孔的值(例如 0),或者指定每个索引(对于系列)或列(对于数据帧)使用的值的字典/系列/数据帧。不在字典/序列/数据帧中的值将不会被填充。该值不能是列表。

方法: { '回填','填充','填充','填充','无' },默认无。用于填充重新索引的系列填充板/填充孔的方法:将最后一个有效观察值向前传播到下一个有效回填/填充孔:使用下一个有效观察值填充间隙。

轴: {0 或‘索引’,1 或‘列’}。填充缺失值的轴。

inplace: bool,默认 False。如果为真,请就地填写。注意:这将修改此对象上的任何其他视图(例如,数据帧中某列的无拷贝切片)。

限制: int,默认无。如果指定了方法,这是向前/向后填充的连续 NaN 值的最大数量。换句话说,如果有一个超过这个数量的连续 nan 的间隙,它将只被部分填充。如果未指定方法,这是沿整个轴将填充 NaNs 的最大条目数。如果不是“无”,则必须大于 0。

向下转换: dict,默认值为无。项的字典- >如果可能的话,要向下转换的数据类型,或者尝试向下转换为适当的相等类型的字符串“推断”(例如,如果可能的话,float64 到 int64)。

示例 1:使用DataFrame.fillna()方法替换 NaN 元素

这里,通过使用DataFrame.fillna()方法,我们可以用指定的值替换数据帧中的所有空值或缺失值。

#importing pandas as pd
import pandas as pd
#importing numpy as np
import numpy as np
df = pd.DataFrame([[2, np.nan, 0],[np.nan, np.nan,5],[np.nan,3,np.nan]],columns=list('ABC'))
print("-----The DataFrame is-----")
print(df)
print("-----Filling Nan values------")
print(df.fillna(2))

一旦我们运行该程序,我们将获得以下输出。

-数据帧为- A B C 0 2.0 NaN 0.0 1 NaN NaN 5.0 2 NaN 3.0 NaN -填充 NaN 值- A B C 0 2.0 2.0 0.0 1 2.0 2.0 5.0 2.0 3.0 2.0 2.0

示例 2:使用DataFrame.ffill()方法填充缺失值

通过使用DataFrame.fillna()方法,我们也可以使用ffill方法向前传播非空值。

#importing pandas as pd
import pandas as pd
#importing numpy as np
import numpy as np
df = pd.DataFrame([[2, np.nan, 0],[np.nan, np.nan,5],[np.nan,3,np.nan]],columns=list('ABC'))
print("-----The DataFrame is-----")
print(df)
print("-----Filling Nan values------")
print(df.fillna(method='ffill'))

一旦我们运行该程序,我们将获得以下输出。

-数据帧为- A B C 0 2.0 NaN 0.0 1 NaN NaN 5.0 2 NaN 3.0 NaN -填充 NaN 值- A B C 0 2.0 NaN 0.0 1 2.0 NaN 5.0 2.0 3.0 5.0

示例 3:使用DataFrame.ffill()方法填充缺失值

使用DataFrame.fillna()方法,我们也可以使用ffill方法沿着axis=1.向前传播非空值

#importing pandas as pd
import pandas as pd
#importing numpy as np
import numpy as np
df = pd.DataFrame([[2, np.nan, 0],[np.nan, np.nan,5],[np.nan,3,np.nan]],columns=list('ABC'))
print("-----The DataFrame is-----")
print(df)
print("-----Filling Nan values------")
print(df.fillna(method='ffill',axis=1))

一旦我们运行该程序,我们将获得以下输出。

-数据帧为- A B C 0 2.0 NaN 0.0 1 NaN NaN 5.0 2 NaN 3.0 NaN -填充 NaN 值- A B C 0 2.0 2.0 0.0 1 NaN 5.0 2 NaN 3.0 3.0

示例 4:使用DataFrame.ffill()方法填充缺失值

使用DataFrame.fillna()方法,我们也可以使用bfill方法向后传播非空值。

#importing pandas as pd
import pandas as pd
#importing numpy as np
import numpy as np
df = pd.DataFrame([[2, np.nan, 0],[np.nan, np.nan,5],[np.nan,3,np.nan]],columns=list('ABC'))
print("-----The DataFrame is-----")
print(df)
print("-----Filling Nan values------")
print(df.fillna(method='bfill'))

一旦我们运行该程序,我们将获得以下输出。

-数据帧为- A B C 0 2.0 NaN 0.0 1 NAn NAn 5.0 2 NAn 3.0 NAn -填充 NAn 值- A B C 0 2.0 3.0 0.0 1 NAn 3.0 5.0 2 NAn 3.0 NAn

示例 4:使用DataFrame.ffill()方法填充缺失值

在下面的示例中,DataFrame.fillna()方法将“A”、“B”、“C”和“D”列中的所有 NaN 元素分别替换为 0、1、2 和 3。

#importing pandas as pd
import pandas as pd
#importing numpy as np
import numpy as np
df = pd.DataFrame([[2, np.nan, 0],[np.nan, np.nan,5],[np.nan,3,np.nan]],columns=list('ABC'))
print("-----The DataFrame is-----")
print(df)
new_values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
print("-----Filling Nan values------")
print(df.fillna(value=new_values))

一旦我们运行该程序,我们将获得以下输出。

-数据帧为- A B C 0 2.0 NaN 0.0 1 NaN NaN 5.0 2 NaN 3.0 NaN -填充 NaN 值- A B C 0 2.0 1.0 0.0 1 0.0 1.0 5.0 2 0.0 3.0 2.0

示例 5:使用DataFrame.ffill()方法填充缺失值

我们可以使用DataFrame.fillna()方法中的limit方法替换第一个 NaN 元素。

#importing pandas as pd
import pandas as pd
#importing numpy as np
import numpy as np
df = pd.DataFrame([[2, np.nan, 0],[np.nan, np.nan,5],[np.nan,3,np.nan]],columns=list('ABC'))
print("-----The DataFrame is-----")
print(df)
new_values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
print("-----Filling Nan values------")
print(df.fillna(value=new_values,limit=1))

一旦我们运行该程序,我们将获得以下输出。

-数据帧为- A B C 0 2.0 NaN 0.0 1 NAn NAn 5.0 2 NAn 3.0 NAn -填充 NAn 值- A B C 0 2.0 1.0 0.0 1 0.0 NAn 5.0 2 NAn 3.0 2.0

结论

在本教程中,我们学习了 PandasDataFrame.fillna()方法。我们学习了语法、参数,并通过在数据帧上应用这种方法,我们解决了示例并理解了DataFrame.fillna()方法。