下面是详解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()
函数这样的常用函数,实践中也经常用到,理解其底层实现,掌握了解其应用场景,对于数据分析工作的顺利进行有着积极的影响。