详解pandas中缺失数据处理的函数

  • Post category:Python

下面是详解pandas中缺失数据处理的函数的完整攻略:

1. pandas中缺失数据的表示

在pandas中,缺失数据的表示为NaN,它是float类型的。

2. 描述与处理缺失数据的常用函数

pandas提供了许多描述和处理缺失数据的函数。下面我们将一一介绍。

2.1. 描述函数

2.1.1 describe函数

describe()是一种描述数据集的函数,它可以返回数据集中的各种统计信息,包括平均值、标准差、最小值、最大值等。在统计计算时,describe()函数默认会忽略缺失值。

示例1
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3, None, 4, 5, 6],
                   'B': [2, 3, None, 5, 6, None, 8],
                   'C': [3, 4, 5, 6, None, 8, 9]})
print(df.describe())

输出结果如下:

              A         B         C
count  6.000000  5.000000  6.000000
mean   3.500000  4.800000  5.166667
std    1.870829  2.312883  2.202689
min    1.000000  2.000000  3.000000
25%    2.250000  3.000000  4.250000
50%    3.500000  5.000000  5.500000
75%    4.750000  6.000000  7.000000
max    6.000000  8.000000  9.000000

从上面的输出结果可以看出,describe()函数忽略了数据集中的缺失值,并计算出了其他值的统计信息。

2.2. 处理函数

2.2.1. dropna函数

dropna()函数可以用来删除数据集中包含缺失值的行或列。

示例2
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3, None, 4, 5, 6],
                   'B': [2, 3, None, 5, 6, None, 8],
                   'C': [3, 4, 5, 6, None, 8, 9]})
# 删除包含缺失值的行
df_1 = df.dropna()
print(df_1)

# 删除包含缺失值的列
df_2 = df.dropna(axis=1)
print(df_2)

输出结果如下:

     A    B    C
0  1.0  2.0  3.0
1  2.0  3.0  4.0
3  4.0  5.0  6.0
4  5.0  6.0  NaN
6  6.0  8.0  9.0
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3, 4, 5, 6]

从上面示例2的输出结果可以看出,dropna()函数可以删除包含缺失值的行或列。在示例2中,我们通过指定axis参数来删除列包含缺失值的列。如果需要删除包含缺失值的行,可以省略axis参数或将其设置为0。

2.2.2. fillna函数

fillna()函数可以用来填充数据集中的缺失值。

示例3
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3, None, 4, 5, 6],
                   'B': [2, 3, None, 5, 6, None, 8],
                   'C': [3, 4, 5, 6, None, 8, 9]})
# 使用0填充缺失值
df_1 = df.fillna(0)
print(df_1)

# 使用平均值填充缺失值
df_2 = df.fillna(df.mean())
print(df_2) 

输出结果如下:

     A    B    C
0  1.0  2.0  3.0
1  2.0  3.0  4.0
2  3.0  0.0  5.0
3  0.0  5.0  6.0
4  4.0  6.0  0.0
5  5.0  0.0  8.0
6  6.0  8.0  9.0
     A    B         C
0  1.0  2.0  3.000000
1  2.0  3.0  4.000000
2  3.0  4.8  5.000000
3  3.5  5.0  6.000000
4  4.0  6.0  5.166667
5  5.0  4.8  8.000000
6  6.0  8.0  9.000000

从示例3的输出结果可知,fillna()函数可以用来填充数据集中的缺失值。在示例3中,我们使用0填充缺失值,也可以使用其他的数值或使用均值、中位数等填充缺失值。

总结

本文详细讲解了pandas中缺失数据处理的函数,包括缺失值的表示、描述和处理函数。缺失数据处理在实际数据分析中非常重要,掌握这些函数对于分析师们来说是必不可少的。像dropna()函数和fillna()函数这样的常用函数,实践中也经常用到,理解其底层实现,掌握了解其应用场景,对于数据分析工作的顺利进行有着积极的影响。