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)文章
python如何使用pywebview打造一個(gè)現(xiàn)代化的可視化GUI界面詳解
pywebview是一個(gè)輕量級(jí)的跨平臺(tái)庫(kù),它可以讓你在Python程序中嵌入一個(gè)瀏覽器窗口,下面這篇文章主要給大家介紹了關(guān)于python如何使用pywebview打造一個(gè)現(xiàn)代化的可視化GUI界面的相關(guān)資料,需要的朋友可以參考下2024-07-07
python實(shí)現(xiàn)在無(wú)須過(guò)多援引的情況下創(chuàng)建字典的方法
這篇文章主要介紹了python實(shí)現(xiàn)在無(wú)須過(guò)多援引的情況下創(chuàng)建字典的方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09
Python Matplotlib庫(kù)實(shí)現(xiàn)畫(huà)局部圖
這篇文章主要為大家詳細(xì)介紹了Python Matplotlib庫(kù)實(shí)現(xiàn)畫(huà)局部圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Django 項(xiàng)目通過(guò)加載不同env文件來(lái)區(qū)分不同環(huán)境
這篇文章主要介紹了Django 項(xiàng)目如何通過(guò)加載不同env文件來(lái)區(qū)分不同環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
詳解Python是如何實(shí)現(xiàn)issubclass的
這篇文章主要介紹了詳解Python是如何實(shí)現(xiàn)issubclass的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python如何實(shí)現(xiàn)Markdown記賬記錄轉(zhuǎn)Excel存儲(chǔ)
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)Markdown記賬記錄轉(zhuǎn)Excel存儲(chǔ)功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-03-03
python爬取企查查企業(yè)信息之selenium自動(dòng)模擬登錄企查查
這篇文章主要介紹了python爬取企查查企業(yè)信息之自動(dòng)模擬登錄企查查以及selenium獲取headers,selenium獲取cookie,需要的朋友可以參考下2021-04-04

