您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何在Pandas中使用Fillna填充缺失數據,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
約定:
import pandas as pd import numpy as np from numpy import nan as NaN
填充缺失數據
fillna()是最主要的處理方式了。
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)
代碼結果:
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})
代碼結果:
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
代碼結果:
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
代碼結果:
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')#用前面的值來填充
代碼結果:
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)
代碼結果:
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)
代碼結果:
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 |
上述內容就是如何在Pandas中使用Fillna填充缺失數據,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。