補充2. **例項
2.2 使用inplace引數
2.3 使用method引數
2.4 使用limit引數
2.5 使用axis引數
取值:true、false
true:直接修改原物件取值 : , default nonefalse:建立乙個副本,修改副本,原物件不變(預設預設)
pad/ffill:用前乙個非缺失值去填充該缺失值限制填充個數none:指定乙個值去替換缺失值(預設預設這種方式)
修改填充方向
isnull 和 notnull 函式用於判斷是否有缺失值資料
isnull:缺失值為true,非缺失值為false
notnull:缺失值為false,非缺失值為true
#導包
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
**結果:
012
01.0
2.03.0
1 nan nan 2.0
2 nan nan nan
38.0
8.0 nan
#1.用常數填充
print
(df1.fillna(
100)
)print
("-----------------------"
)print
(df1)
執行結果:
012
01.0
2.03.0
1100.0
100.0
2.02
100.0
100.0
100.0
38.0
8.0100.0--
----
----
----
----
----
-012
01.0
2.03.0
1 nan nan 2.0
2 nan nan nan
38.0
8.0 nan
第key列的nan
用key對應的value值填充
df1.fillna(
)
執行結果:
012
01.0
2.03.0
110.0
20.0
2.02
10.0
20.0
30.0
38.0
8.030.0
print
(df1.fillna(
0,inplace=
true))
print
("-------------------------"
)print
(df1)
執行結果:
在這裡插入**片
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'
))
執行結果:
012
3408
445.06.015
28 nan 7.026
31 nan nan35
49 nan nan46
546.09.0--
----
----
----
----
----
---0
1234
0844
5.06.015
285.07.026
315.07.035
495.07.046
546.09.0
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'
))
執行結果:
012
3401
041.03.014
64 nan 2.024
92 nan nan39
73 nan nan46
135.05.0--
----
----
----
----
----
---0
1234
0104
1.03.014
645.02.024
925.05.039
735.05.046
135.05.0
用下乙個非缺失值填充該缺失值且每列只填充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)
)
執行結果:
012
3402
044.00.017
99 nan 1.021
73 nan nan38
58 nan nan48
624.04.0--
----
----
----
----
----
---0
1234
0204
4.00.017
99 nan 1.021
734.04.038
584.04.048
624.04.0
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)
)
執行結果:
012
3400.0
4.09.0
7.02.0
16.0
5.00.0
0.03.0
28.0
8.08.0
8.0 nan
35.0
5.06.0
6.0 nan
47.0
5.07.0
4.01.0
還有一些pandas的基礎運算請參考這篇文章->pandas | dataframe基礎運算以及空值填充 在pandas中使用sql
from pandasql import sqldf 查詢記憶體中的pandas資料框 pysqldf lambda q sqldf q,globals 匯入模組,自帶資料,尋找pandas資料框 from pandasql import sqldf,load meat,load births py...
Pandas使用總結
第一參加阿里天池舉辦的比賽,關於美年雙高 的比賽,成績0.08。因為之前只學習過理論,沒有具體做過專案,對python會一些,但對pandas基本從零開始。比賽初期基本copy大佬的資料處理部分的 後面再在此基礎上修改。天池的比賽,比較貼近實際的專案,還是很有參與價值的。在這個比賽中,我也認識到了特...
pandas 高階使用
目錄 csv comma separated values 格式的檔案是指以純文字形式儲存的 資料,這意味著不能簡單的使用excel 工具進行處理,而且excel 處理的資料量十分有限,而使用pandas來處理資料量巨大的csv檔案就容易的多了。import pandas as pd deftest...