Pandas處理丟失資料

2021-10-06 06:43:58 字數 2302 閱讀 9717

dates= pd.date_range(

'20130101'

,periods=6)

df=pd.dataframe(np.arange(24)

.reshape(6,

4),index=dates,columns=

['a'

,'b'

,'c'

,'d'])

df.iloc[0,

1]=np.nan

df.iloc[1,

2]=np.nan

print

(df)

a     b     c   d
2013-01-01 0 nan 2.0 3

2013-01-02 4 5.0 nan 7

2013-01-03 8 9.0 10.0 11

2013-01-04 12 13.0 14.0 15

2013-01-05 16 17.0 18.0 19

2013-01-06 20 21.0 22.0 23

print

(df.dropna(axis=

0,how=

'any'))

#any,每一行只要有nan出現,這一行將會被刪除,而how='all'只會刪掉整行為nan的資料

a     b     c   d
2013-01-03 8 9.0 10.0 11

2013-01-04 12 13.0 14.0 15

2013-01-05 16 17.0 18.0 19

2013-01-06 20 21.0 22.0 23

print

(df.dropna(axis=

1,how=

'any'))

#丟掉有nan的列

a   d
2013-01-01 0 3

2013-01-02 4 7

2013-01-03 8 11

2013-01-04 12 15

2013-01-05 16 19

2013-01-06 20 23

print

(df.dropna(axis=

1,how=

'all'))

#丟掉所有都是nan的列

a     b     c   d
2013-01-01 0 nan 2.0 3

2013-01-02 4 5.0 nan 7

2013-01-03 8 9.0 10.0 11

2013-01-04 12 13.0 14.0 15

2013-01-05 16 17.0 18.0 19

2013-01-06 20 21.0 22.0 23

print

(df.fillna(value=0)

)#把nan的的值填上0

a     b     c   d
2013-01-01 0 0.0 2.0 3

2013-01-02 4 5.0 0.0 7

2013-01-03 8 9.0 10.0 11

2013-01-04 12 13.0 14.0 15

2013-01-05 16 17.0 18.0 19

2013-01-06 20 21.0 22.0 23

print

(df.isnull())

#判斷是否有nan,如果有nan就會顯示true

a      b      c      d
2013-01-01 false true false false

2013-01-02 false false true false

2013-01-03 false false false false

2013-01-04 false false false false

2013-01-05 false false false false

2013-01-06 false false false false

#如果有時候**資料太大,可用下面這個來判斷是否有nan,有的話會顯示true

print

(np.

any(df.isnull())

==true

)

true

pandas處理丟失資料

有兩種丟失資料的方式 none np.nan nan 1,none none是python當中自帶的,型別為python object,所以,none是不能參與到任何的計算當中的 2,np.nan np.nan是浮點型別,能參與到計算當中,但是計算的結果為nan pandas中none與np.nan...

Pandas處理丟失資料

pandas處理丟失資料 1 建立含nan的矩陣 dates pd.date range 20130101 periods 6 df pd.dataframe np.arange 24 reshape 6,4 index dates,columns a b c d df.iloc 0,1 np.na...

pandas處理丟失資料

pandas將none和nan視為可交換的,它們都可以用來指示丟失的資料。none可以代替丟失值 哨兵值 並不適合所有情況,只能用於陣列的型別為物件的情況。none會導致一些聚合操作,比如sum 和min 會報錯。nan 代替丟失值 另外一中哨兵值 一種特殊的浮點型資料,不管什麼操作,只要有nan,...