pandas的學習4 處理丟失資料

2022-09-15 22:06:25 字數 2409 閱讀 4952

import pandas as pd

import numpy as np

'''有時候我們匯入或處理資料, 會產生一些空的或者是 nan 資料,如何刪除或者是填補這些 nan 資料就是我們今天所要提到的內容.

建立了乙個6x4的矩陣資料並且把兩個位置置為空.

'''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

""" 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

"""'''

pd.dropna() 去掉

如果想直接去掉有 nan 的行或列, 可以使用 dropna

'''df.dropna(

axis=0, # 0: 對行進行操作; 1: 對列進行操作

how='any' # 'any': 只要存在 nan 就 drop 掉; 'all': 必須全部是 nan 才 drop

)""" 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

"""'''

pd.fillna(value=) 代替

如果是將 nan 的值用其他值代替, 比如代替成 0:

'''df.fillna(value=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

"""# pd.isnull()

## 判斷是否有缺失資料 nan, 為 true 表示缺失資料:

df.isnull() #這個是返回乙個dateframe

""" 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:

#np.any()是概括

# np.any(df.isnull()) == true

# true

df.dropna(   

axis=0, # 0: 對行進行操作; 1: 對列進行操作

how='any' # 'any': 只要存在 nan 就 drop 掉; 'all': 必須全部是 nan 才 drop

)

去掉有空值的行或者列

dateframe.fillna(value= ) 替代控制為value的值

dateframe.isnull() 這個返回的是乙個dateframe 裡面的只有false,true 當存在na的時候就是true

np.any(dateframe.isnull())  判斷這個dateframe是否有空值

出處:

4 pandas處理丟失的資料

有些時候我們採集到的資料可能會是不全的,那麼這個時候我們就需要進行一定的處理,以便來滿足我們的要求。那麼開始吧 1 生成資料 import numpy as np import pandas as pd 生成資料 dates np.arange 20200101 20200105 df1 pd.da...

4 處理器排程

4.1 cpu排程的相關概念 cpu排程 按照一定的排程演算法從就緒佇列中選擇乙個程序,把cpu的使用權交給被選中的程序,其任務就是控制 協調程序對cpu的競爭。如果沒有就緒程序,系統會安排乙個系統空閒程序或idle程序。cpu排程所面臨的場景 系統中有n個程序,等待上cpu執行,而有m個cpu,m...

opencvC 學習16處理邊緣

影象卷積的時候邊界畫素,不能被卷積操作,原因在於邊界畫素沒有完全跟kernel重疊,所以當3x3濾波時候有1個畫素的邊緣沒有被處理,5x5濾波的時候有2個畫素的邊緣沒有被處理。在卷積開始之前增加邊緣畫素,填充的畫素值為0或者rgb黑色,比如3x3在 四周各填充1個畫素的邊緣,這樣就確保影象的邊緣被處...