Python使用groupby()+ffill()根据指定列填充缺失值

30 篇文章 4 订阅

ffill() 使用方法介绍

参考链接:
https://www.geeksforgeeks.org/python-pandas-dataframe-ffill/

# importing pandas as pd
import pandas as pd
 
# Creating the dataframe
df=pd.DataFrame({"A":[5,3,None,4],
                 "B":[None,2,4,3],
                 "C":[4,3,8,5],
                 "D":[5,4,2,None]})
 
# Print the dataframe
df

在这里插入图片描述

按行填充

引用上一行的值填充:缺点是无法填充第一行缺失值

#按axis = 0填充
df.ffill(axis = 0)

在这里插入图片描述

按列填充

引用上一列的值填充:缺点是无法填充第一列缺失值

#按axis = 1填充
df.ffill(axis = 1)

在这里插入图片描述

groupby() + ffill()

先建立一个DF, 有城市名称和邮编号,其中邮编部分缺失,需要根据城市名称去进行填充缺失值。

df=pd.DataFrame({"city":['Beijing','Shanghai','Tianjing','Beijing','Shanghai'],
                 "zip_code":[100000,200000,300000,None,None],
                 "UID":[1,2,3,4,5],
                 "Order_ID":[100,111,223,333,4444]})
df

在这里插入图片描述

#groupby 和fill 组合使用,返回的结果可见缺失值已经补充完成
df.groupby('city')['zip_code'].ffill()

在这里插入图片描述

#替换掉原来的列
df['zip_code']=df.groupby('city')['zip_code'].ffill()
df

在这里插入图片描述
缺失值已经填补成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值