pandas使用fillna函數(shù)填充N(xiāo)aN值的代碼實(shí)例
1. 參數(shù)解析
1.1 inplace參數(shù)
取值:True、False
True:直接修改原對(duì)象
False:創(chuàng)建一個(gè)副本,修改副本,原對(duì)象不變(缺省默認(rèn))
1.2 method參數(shù)
取值 : {‘pad’, ‘ffill’,‘backfill’, ‘bfill’, None}, default None
pad/ffill:用前一個(gè)非缺失值去填充該缺失值
backfill/bfill:用下一個(gè)非缺失值填充該缺失值
None:指定一個(gè)值去替換缺失值(缺省默認(rèn)這種方式)
1.3 limit參數(shù):
限制填充個(gè)數(shù)
1.4 axis參數(shù)
修改填充方向
補(bǔ)充
isnull 和 notnull 函數(shù)用于判斷是否有缺失值數(shù)據(jù)
- isnull:缺失值為T(mén)rue,非缺失值為False
- notnull:缺失值為False,非缺失值為T(mén)rue
2. 代碼實(shí)例
#導(dǎo)包 import pandas as pd import numpy as np from numpy import nan as NaN df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]]) df1
代碼結(jié)果:
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
2.1 常數(shù)填充
2.1.1 用常數(shù)填充
#1.用常數(shù)填充 print (df1.fillna(100)) print ("-----------------------") print (df1)
運(yùn)行結(jié)果:
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
-----------------------
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
2.1.2 用字典填充
第key列的NaN用key對(duì)應(yīng)的value值填充
df1.fillna({0:10,1:20,2:30})
運(yùn)行結(jié)果:
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
2.2 使用inplace參數(shù)
print (df1.fillna(0,inplace=True)) print ("-------------------------") print (df1)
運(yùn)行結(jié)果:
在這里插入代碼片
2.3 使用method參數(shù)
1.method = 'ffill'/'pad':用前一個(gè)非缺失值去填充該缺失值
df2 = pd.DataFrame(np.random.randint(0,10,(5,5))) df2.iloc[1:4,3] = None df2.iloc[2:4,4] = None print(df2) print ("-------------------------") print(df2.fillna(method='ffill'))
運(yùn)行結(jié)果:
0 1 2 3 4
0 8 4 4 5.0 6.0
1 5 2 8 NaN 7.0
2 6 3 1 NaN NaN
3 5 4 9 NaN NaN
4 6 5 4 6.0 9.0
-------------------------
0 1 2 3 4
0 8 4 4 5.0 6.0
1 5 2 8 5.0 7.0
2 6 3 1 5.0 7.0
3 5 4 9 5.0 7.0
4 6 5 4 6.0 9.0
2.method = ‘bflii’/‘backfill’:用下一個(gè)非缺失值填充該缺失值
df2 = pd.DataFrame(np.random.randint(0,10,(5,5))) df2.iloc[1:4,3] = None df2.iloc[2:4,4] = None print(df2) print ("-------------------------") print(df2.fillna(method='bfill'))
運(yùn)行結(jié)果:
0 1 2 3 4
0 1 0 4 1.0 3.0
1 4 6 4 NaN 2.0
2 4 9 2 NaN NaN
3 9 7 3 NaN NaN
4 6 1 3 5.0 5.0
-------------------------
0 1 2 3 4
0 1 0 4 1.0 3.0
1 4 6 4 5.0 2.0
2 4 9 2 5.0 5.0
3 9 7 3 5.0 5.0
4 6 1 3 5.0 5.0
2.4 使用limit參數(shù)
用下一個(gè)非缺失值填充該缺失值且每列只填充2個(gè)
df2 = pd.DataFrame(np.random.randint(0,10,(5,5))) df2.iloc[1:4,3] = None df2.iloc[2:4,4] = None print(df2) print ("-------------------------") print(df2.fillna(method='bfill', limit=2))
運(yùn)行結(jié)果:
0 1 2 3 4
0 2 0 4 4.0 0.0
1 7 9 9 NaN 1.0
2 1 7 3 NaN NaN
3 8 5 8 NaN NaN
4 8 6 2 4.0 4.0
-------------------------
0 1 2 3 4
0 2 0 4 4.0 0.0
1 7 9 9 NaN 1.0
2 1 7 3 4.0 4.0
3 8 5 8 4.0 4.0
4 8 6 2 4.0 4.0
2.5 使用axis參數(shù)
axis=0 對(duì)每列數(shù)據(jù)進(jìn)行操作
axis=1 對(duì)每行數(shù)據(jù)進(jìn)行操作
df2 = pd.DataFrame(np.random.randint(0,10,(5,5))) df2.iloc[1:4,3] = None df2.iloc[2:4,4] = None print(df2.fillna(method="ffill", limit=1, axis=1))
運(yùn)行結(jié)果:
0 1 2 3 4
0 0.0 4.0 9.0 7.0 2.0
1 6.0 5.0 0.0 0.0 3.0
2 8.0 8.0 8.0 8.0 NaN
3 5.0 5.0 6.0 6.0 NaN
4 7.0 5.0 7.0 4.0 1.0
還有一些pandas的基礎(chǔ)運(yùn)算請(qǐng)參考這篇文章->pandas | DataFrame基礎(chǔ)運(yùn)算以及空值填充
總結(jié)
到此這篇關(guān)于pandas使用fillna函數(shù)填充N(xiāo)aN值的文章就介紹到這了,更多相關(guān)pandas用fillna填充N(xiāo)aN值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Python數(shù)據(jù)處理中的None、NULL和NaN的理解與應(yīng)用
這篇文章主要介紹了關(guān)于Python數(shù)據(jù)處理中的None、NULL和NaN的理解與應(yīng)用,None表示空值,一個(gè)特殊Python對(duì)象,None的類(lèi)型是NoneType,需要的朋友可以參考下2023-08-08Django Rest framework之權(quán)限的實(shí)現(xiàn)示例
這篇文章主要介紹了Django Rest framework之權(quán)限的實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python多進(jìn)程(加入進(jìn)程池)操作常見(jiàn)案例
這篇文章主要介紹了python多進(jìn)程(加入進(jìn)程池)操作,結(jié)合常見(jiàn)案例形式分析了Python多進(jìn)程復(fù)制文件、加入進(jìn)程池及多進(jìn)程聊天等相關(guān)操作技巧,需要的朋友可以參考下2019-10-10windows下Python實(shí)現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法
這篇文章主要介紹了windows下Python實(shí)現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python實(shí)現(xiàn)將pdf轉(zhuǎn)換為png格式的相關(guān)模塊、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-07-07Python中np.random.randint()參數(shù)詳解及用法實(shí)例
numpy.random.randint()函數(shù)不僅可以生成一維隨機(jī)數(shù)組,也可以生成多維度的隨機(jī)數(shù)組,下面這篇文章主要給大家介紹了關(guān)于Python中np.random.randint()參數(shù)詳解及用法的相關(guān)資料,需要的朋友可以參考下2022-09-09Python NumPy中diag函數(shù)的使用說(shuō)明
這篇文章主要介紹了Python NumPy中diag函數(shù)的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05python中os.path.join()函數(shù)實(shí)例用法
在本篇文章里小編給大家整理的是一篇關(guān)于python中os.path.join()函數(shù)實(shí)例用法,有興趣的朋友們可以跟著學(xué)習(xí)參考下。2021-05-05100行Python代碼實(shí)現(xiàn)每天不同時(shí)間段定時(shí)給女友發(fā)消息
這篇文章主要介紹了100行Python代碼,每天不同時(shí)間段定時(shí)給女友發(fā)消息,本文給出了實(shí)現(xiàn)思路,代碼簡(jiǎn)單易懂非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Python中byte字符串轉(zhuǎn)string的實(shí)現(xiàn)
本文主要介紹了Python中byte字符串轉(zhuǎn)string的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07