数据分析已经成为我们日常生活中的一个重要组成部分。我们每天都要处理来自不同领域的不同类型的数据。数据分析的主要挑战之一是数据中存在的缺失值或(NA)。在这篇文章中,我们将学习如何在fillna()方法的帮助下处理数据集中的缺失值。让我们开始吧!
什么是Pandas fillna()方法,为什么它有用?
Pandas Fillna()是一个用来填补数据集中的缺失值或不完整值的方法。你可以填补缺失的值,如0或输入一个值。当你在处理CSV或Excel文件时,这个方法通常会派上用场。
不要与dropna()方法混淆,在该方法中我们要删除缺失的值。在这种情况下,我们将用零或用户的输入值来替换缺失的值。
让我们来看看fillna()函数的语法
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
让我们看看下面的例子,看看你如何在不同的情况下使用fillna()方法。
Pandas DataFrame fillna()方法
在下面的例子中,我们将用零来填补NAN值的位置。
import pandas as pd
import numpy as np
df = pd.DataFrame([[np.nan, 300, np.nan, 330],
[589, 700, np.nan, 103],
[np.nan, np.nan, np.nan, 675],
[np.nan, 3]],
columns=list('abcd'))
print(df)
#Filling the NaN values with zeros.
print("\n")
print(df.fillna(0))
输出
a b c d
0 NaN 300.0 NaN 330.0
1 589.0 700.0 NaN 103.0
2 NaN NaN NaN 675.0
3 NaN 3.0 NaN NaN
a b c d
0 0.0 300.0 0.0 330.0
1 589.0 700.0 0.0 103.0
2 0.0 0.0 0.0 675.0
3 0.0 3.0 0.0 0.0
只对一列应用fillna()方法
df = pd.DataFrame([[np.nan, 300, np.nan, 330],
[589, 700, np.nan, 103],
[np.nan, np.nan, np.nan, 675],
[np.nan, 3]],
columns=list('abcd'))
print(df)
#Filling the NaN value
print("\n")
newDF = df['b'].fillna(0)
print(newDF)
输出
a b c d
0 NaN 300.0 NaN 330.0
1 589.0 700.0 NaN 103.0
2 NaN NaN NaN 675.0
3 NaN 3.0 NaN NaN
0 300.0
1 700.0
2 0.0
3 3.0
Name: b, dtype: float64
你也可以使用limit方法来指定你要填充NAN值的行。
import pandas as pd
import numpy as np
df = pd.DataFrame([[np.nan, 300, np.nan, 330],
[589, 700, np.nan, 103],
[np.nan, np.nan, np.nan, 675],
[np.nan, 3]],
columns=list('abcd'))
print(df)
# Filing the NaN value
print("\n")
print(df.fillna(0, limit=2))
输出
a b c d
0 NaN 300.0 NaN 330.0
1 589.0 700.0 NaN 103.0
2 NaN NaN NaN 675.0
3 NaN 3.0 NaN NaN
a b c d
0 0.0 300.0 0.0 330.0
1 589.0 700.0 0.0 103.0
2 0.0 0.0 NaN 675.0
3 NaN 3.0 NaN 0.0
在上面的方法中,我们应用了limit=2,这意味着我们只替换了前两行的NAN值。
总结
综上所述,我们学习了不同的方法来填充DataFrame中的NAN值。所有这些方法将在你的任何数据分析项目中派上用场。