小編寫這篇文章的主要目的,還是用來給大家講解一些案例,給大家講解一下具體的一些使用法則,包括使用fillna函數填充NaN值,下面給大家做一個比較詳細的解答。
1.參數解析
1.1inplace參數
取值:True、False
True:直接修改原對象
False:創建一個副本,修改副本,原對象不變(缺省默認)
1.2method參數
取值:{‘pad’,‘ffill’,‘backfill’,‘bfill’,None},defaultNone
pad/ffill:用前一個非缺失值去填充該缺失值
backfill/bfill:用下一個非缺失值填充該缺失值
None:指定一個值去替換缺失值(缺省默認這種方式)
1.3limit參數:
限制填充個數
1.4axis參數
修改填充方向
補充
isnull和notnull函數用于判斷是否有缺失值數據
isnull:缺失值為True,非缺失值為False
notnull:缺失值為False,非缺失值為True
2.代碼實例
#導包 importpandasaspd importnumpyasnp fromnumpyimportnanasNaN df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]]) df1
代碼結果:
012
01.02.03.0
1NaNNaN2.0
2NaNNaNNaN
38.08.0NaN
2.1常數填充
2.1.1用常數填充
#1.用常數填充 print(df1.fillna(100)) print("-----------------------") print(df1)
運行結果:
012
01.02.03.0
1100.0100.02.0
2100.0100.0100.0
38.08.0100.0
-----------------------
012
01.02.03.0
1NaNNaN2.0
2NaNNaNNaN
38.08.0NaN
2.1.2用字典填充
第key列的NaN用key對應的value值填充
df1.fillna({0:10,1:20,2:30})
運行結果:
012
01.02.03.0
110.020.02.0
210.020.030.0
38.08.030.0
2.2使用inplace參數
print(df1.fillna(0,inplace=True)) print("-------------------------") print(df1)
運行結果:
在這里插入代碼片
2.3使用method參數
1.method='ffill'/'pad':用前一個非缺失值去填充該缺失值 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'))
運行結果:
01234
08445.06.0
1528NaN7.0
2631NaNNaN
3549NaNNaN
46546.09.0
-------------------------
01234
08445.06.0
15285.07.0
26315.07.0
35495.07.0
46546.09.0
2.method=‘bflii’/‘backfill’:用下一個非缺失值填充該缺失值
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'))
運行結果:
01234
01041.03.0
1464NaN2.0
2492NaNNaN
3973NaNNaN
46135.05.0
-------------------------
01234
01041.03.0
14645.02.0
24925.05.0
39735.05.0
46135.05.0
2.4使用limit參數
用下一個非缺失值填充該缺失值且每列只填充2個
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))
運行結果:
01234
02044.00.0
1799NaN1.0
2173NaNNaN
3858NaNNaN
48624.04.0
-------------------------
01234
02044.00.0
1799NaN1.0
21734.04.0
38584.04.0
48624.04.0
2.5使用axis參數
axis=0對每列數據進行操作 axis=1對每行數據進行操作 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))
運行結果:
01234
00.04.09.07.02.0
16.05.00.00.03.0
28.08.08.08.0NaN
35.05.06.06.0NaN
47.05.07.04.01.0
總結,小編就為大家介紹到這里了,希望可以給讀者帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127852.html
摘要:中面向行和面向列的操作基本是平衡的。用層次化索引,將其表示為更高維度的數據。使用浮點值表示浮點和非浮點數組中的缺失數據。索引的的格式化輸出形式選取數據子集在內層中進行選取層次化索引在數據重塑和基于分組的操作中很重要。 我們在上一篇介紹了 NumPy,本篇介紹 pandas。 pandas入門 Pandas 是基于Numpy構建的,讓以NumPy為中心的應用變的更加簡單。 pandas...
小編寫這篇文章的主要目的,是給大家介紹一下關于python中的一些實例,比如,其中,會給大家講到,Python中基礎值的一些運算,以及當我們遇到空的數值的時候,一些處理方法,下面給大家做一個詳細的解答。 前言 今天我們一起來聊聊DataFrame中的索引。 上一篇文章當中我們介紹了DataFrame數據結構當中一些常用的索引的使用方法,比如iloc、loc以及邏輯索引等等。今天的文章...
摘要:引入包和加載數據清洗數據查看數據維度以及類型缺失值處理查看數據統計信息數值屬性離散化計算特征與屬性之間關系查看數據維度以及類型查看前五條數據查看每列數據類型以及情況獲得所有屬性查看數據統計信息查看連續數值屬性基本統計情況查看屬性數據統計情況 引入包和加載數據 12345import pandas as pdimport numpy as nptrain_df =pd.read_csv(...
摘要:前言在數據分析和建模之前需要審查數據是否滿足數據處理應用的要求,以及對數據進行清洗,轉化,合并,重塑等一系列規整化處理。通過數據信息查看可知數據中存在缺失值,比如各存在個,各存在個。 前言 在數據分析和建模之前需要審查數據是否滿足數據處理應用的要求,以及對數據進行清洗,轉化,合并,重塑等一系列規整化處理。pandas標準庫提供了高級靈活的方法,能夠輕松地將數據規整化為正確的形式,本文通...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02