df.fillna()
参照:https://blog.csdn.net/weixin_38168620/article/details/79596819
1 2 3 | import pandas as pd import numpy as np from numpy import nan as NaN |
填充缺失数据
fillna()是最主要的处理方式了。
1 2 | df1 = pd.DataFrame([[ 1 , 2 , 3 ],[NaN,NaN, 2 ],[NaN,NaN,NaN],[ 8 , 8 ,NaN]]) df1 |
代码结果: 0 1 2 0 1.0 2.0 3.0 1 NaN NaN 2.0 2 NaN NaN NaN 3 8.0 8.0 NaN 用常数填充: df1.fillna(100) 1 代码结果: 0 1 2 0 1.0 2.0 3.0 1 100.0 100.0 2.0 2 100.0 100.0 100.0 3 8.0 8.0 100.0 通过字典填充不同的常数: df1.fillna({0:10,1:20,2:30}) 1 代码结果: 0 1 2 0 1.0 2.0 3.0 1 10.0 20.0 2.0 2 10.0 20.0 30.0 3 8.0 8.0 30.0 传入inplace=True直接修改原对象: df1.fillna(0,inplace=True) df1 1 2 代码结果: 0 1 2 0 1.0 2.0 3.0 1 0.0 0.0 2.0 2 0.0 0.0 0.0 3 8.0 8.0 0.0 传入method=” “改变插值方式: df2=pd.DataFrame(np.random.randint(0,10,(5,5))) df2.iloc[1:4,3]=NaN;df2.iloc[2:4,4]=NaN df2 1 2 3 代码结果: 0 1 2 3 4 0 6 6 2 4.0 1.0 1 4 7 0 NaN 5.0 2 6 5 5 NaN NaN 3 1 9 9 NaN NaN 4 4 8 1 5.0 9.0 df2.fillna(method='ffill')#用前面的值来填充 1 代码结果: 0 1 2 3 4 0 6 6 2 4.0 1.0 1 4 7 0 4.0 5.0 2 6 5 5 4.0 5.0 3 1 9 9 4.0 5.0 4 4 8 1 5.0 9.0 传入limit=” “限制填充个数: df2.fillna(method='bfill',limit=2) 1 代码结果: 0 1 2 3 4 0 6 6 2 4.0 1.0 1 4 7 0 NaN 5.0 2 6 5 5 5.0 9.0 3 1 9 9 5.0 9.0 4 4 8 1 5.0 9.0 传入axis=” “修改填充方向: df2.fillna(method="ffill",limit=1,axis=1) 1 代码结果: 0 1 2 3 4 0 6.0 6.0 2.0 4.0 1.0 1 4.0 7.0 0.0 0.0 5.0 2 6.0 5.0 5.0 5.0 NaN 3 1.0 9.0 9.0 9.0 NaN 4 4.0 8.0 1.0 5.0 9.0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix