Pandas是目前数据分析中最广泛应用的数据处理工具之一,而数据中缺失值的处理也是工作中非常常见和必不可少的一环,这时候就需要用到Pandas提供的fillna()函数。
一、fillna()函数参数详解
首先来看一下fillna()函数的参数,常用的参数如下:
- value:指定填充缺失值的具体值,可以是一个标量值,也可以是一个Series或DataFrame类型的数据。
- method:指定填充缺失值的方法,可选参数包括'ffill'、'bfill',前者表示用缺失值前面的数值来填充,后者则是用后面的数值填充缺失值。
- axis:指定填充的方向,0表示按列填充,1表示按行填充。
- inplace:是否原地修改数据,True表示直接修改原有DataFrame的数据,False表示返回新的DataFrame数据。
二、fillna()函数使用示例
下面通过两个简单的示例,来介绍fillna()函数在实际中的使用方法。
示例一:
我们定义一个DataFrame类型的数据,其中存在一些缺失值,我们将使用fillna()函数对其进行填充。
import pandas as pd
import numpy as np
# 定义一个DataFrame数据
data = {'name': ['Tom', np.nan, 'Jerry', 'Kevin'],
'age': [20, np.nan, 22, 19],
'gender': [np.nan, 'male', 'female', np.nan]}
df = pd.DataFrame(data)
# 查看缺失值
print(df.isnull())
# 对DataFrame数据进行填充
result = df.fillna(value={'name': 'Unknown', 'age': 0, 'gender': 'unknown'})
print(result)
运行结果如下:
name age gender
0 False False True
1 True True False
2 False False False
3 False False True
name age gender
0 Tom 20 unknown
1 Unknown 0 male
2 Jerry 22 female
3 Kevin 19 unknown
在这个示例中,我们定义了一个DataFrame数据,其中存在三个列,其中有两个缺失值。通过fillna()函数,我们将缺失值填充为了Unknown(名字列)、0(年龄列)和unknown(性别列)。
示例二:
在实际的工作中,我们有时候需要对连续的缺失值进行填充。比如下面的例子,我们要将连续的NaN值填充成连续的数字(从1开始)。
import pandas as pd
import numpy as np
# 定义一个DataFrame数据
data = {'name': ['Tom', np.nan, 'Jerry', 'Kevin', np.nan, np.nan],
'age': [20, np.nan, 22, np.nan, np.nan, 18],
'gender': [np.nan, 'male', 'female', 'male', 'unknown', 'male']}
df = pd.DataFrame(data)
# 查看缺失值
print(df.isnull())
# 对DataFrame数据进行填充
result = df.fillna(method='ffill', limit=2)
print(result)
运行结果如下:
name age gender
0 False False True
1 True True False
2 False False False
3 True True False
4 True True False
5 True False False
name age gender
0 Tom 20.0 unknown
1 Tom 20.0 male
2 Jerry 22.0 female
3 Jerry 22.0 male
4 Jerry 22.0 unknown
5 Jerry 18.0 male
在这个示例中,我们引入了limit参数来限制连续填充的个数。使用method='ffill'表示将缺失值前面的数值作为填充值,这里限制了最多连续填充了两个缺失值。可以看到,结果中连续的NaN值已经被填充成了连续的数字了。
三、总结
fillna()函数是Pandas数据处理常见功能之一,其能够高效地对DataFrame数据中出现的缺失值(NaN值)进行处理,使得数据的处理过程变得更加顺畅和精确。在使用该函数时,需要仔细地考虑其参数和使用方式。如果掌握得好,将可以在工作和研究中处理各类数据问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas缺失值填充 df.fillna()的实现 - Python技术站