目录
嗨,各位小伙伴们!马上就是一年一度的端午节了,布丁_码上成功先在这里祝愿大家端午安康呀!你们有没有吃香香的粽子呢?在享受美食的同时,我们也不能忘记实际工作中可能遇到的问题——缺失值。因为一个小小的漏写,很可能影响整个数据分析的准确性,甚至导致公司财务出现问题。所以,今天小编来给大家介绍几个Python库Pandas中处理缺失值的方法。
一、isnull缺失值判断
第一个方法是isnull缺失值判断,它的名字就像一只能翻转拍子的熊孩子,总是给人意外惊喜。这个函数可以判断表格中是否有缺失值,并返回布尔类型的结果。比如说,我们有一张名单表格,其中“性别”、“年龄”两列有些细心的同事没填写,就会以NAN来表示。我们可以用isnull函数来查找这些缺失值:
import pandas as pd
df = pd.read_excel('名单.xlsx')
check = df.isnull()
print(check)
运行后,我们会得到一张新表格,其中包含着原表格中所有的数据,但把缺失的地方都标记为了True:
姓名 | 性别 | 年龄 | |
---|---|---|---|
0 | 张三 | False | 25 |
1 | 李四 | False | 28 |
2 | 王五 | True | NaN |
3 | 赵六 | True | 30 |
二、notnull缺失值判断
接下来,我们可以用第二个方法notnull缺失值判断,来找出数据表中不为空的值。与isnull相反,这个函数只会返回那些不为空的地方,并把它们标记为True。同样还是以名单表格为例:
import pandas as pd
df = pd.read_excel('名单.xlsx')
check = df.notnull()
print(check)
运行后,我们会得到一个新表格,其中“性别”、“年龄”两列的非空处都被标记为True:
姓名 | 性别 | 年龄 | |
---|---|---|---|
0 | 张三 | True | True |
1 | 李四 | True | True |
2 | 王五 | False | False |
3 | 赵六 | False | True |
如果我们只想查找某一列具体的缺失值,可以这样写:
import pandas as pd
df = pd.read_excel('名单.xlsx')
age_check = df['年龄'].isnull()
print(age_check)
然后我们就可以得到只关注“年龄”一列的缺失值信息:
年龄 | |
---|---|
0 | False |
1 | False |
2 | True |
3 | False |
三、dropnull删除缺失值
第三个方法dropnull删除缺失值,则是直接把含有缺失值的行或者列进行过滤,使得剩下的数据表格规整完整。比如说,我们对名单表格进行处理,去掉所有含有缺失值的行:
import pandas as pd
df = pd.read_excel('名单.xlsx')
new_df = df.dropna()
print(new_df)
运行后,我们会发现新的数据表格中已经没有任何缺失值了:
姓名 | 性别 | 年龄 | |
---|---|---|---|
0 | 张三 | 男 | 25 |
1 | 李四 | 女 | 28 |
如果我们希望只要某一列有缺失值就删除整行,可以这样写:
import pandas as pd
df = pd.read_excel('名单.xlsx')
new_df = df.dropna(subset=['年龄'])
print(new_df)
这时,我们会发现只剩下“王五”这个同事被删掉了,因为他的年龄是空的:
姓名 | 性别 | 年龄 | |
---|---|---|---|
0 | 张三 | 男 | 25 |
1 | 李四 | 女 | 28 |
3 | 赵六 | 女 |
四、fillna填充缺失值
最后一个方法fillna填充缺失值,顾名思义,就是用某些规则把空值填满。比如说,我们有一个简单的数据表格,记录了一周吃早餐的数量:
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | |
---|---|---|---|---|---|
0 | 2 | 4 | 1 | 6 | |
1 | 3 | NaN | 5 | 7 | 2 |
我们可以把第一行中最后一个星期五的空值填为0:
import pandas as pd
df = pd.read_excel('早餐.xlsx')
filled = df.fillna(0)
print(filled)
得到新的表格,可以看到,这个缺失值终于不再孤独:
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | |
---|---|---|---|---|---|
0 | 2 | 4 | 1 | 6 | 0 |
1 | 3 | 0 | 5 | 7 | 2 |
这只是fillna这个函数的一种简单用法。它还可以根据前面的数据进行填充,或者按照列进行填充,以满足不同的实际需求。
好啦,今天大家学习了Pandas库中四个处理缺失值的方法:isnull、notnull、dropnull、fillna。相信你们已经掌握了这些方法的使用,以后遇到缺失值问题就再也不用心慌了!