日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Pandas 基础 (5) —— 处理缺失数据及层次化索引

發布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pandas 基础 (5) —— 处理缺失数据及层次化索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  1. 處理缺失數據

    pandas 使用浮點值 NaN (Not a Number)表示浮點和非浮點數組中的缺失數據。它只是一個便于被檢測出來的標記而已。

    In [168]: data = Series(['a','b',np.nan,'d'])In [169]: data
    Out[169]: 
    0      a
    1      b
    2    NaN
    3      d
    dtype: objectIn [170]: data.isnull()
    Out[170]: 
    0    False
    1    False
    2     True
    3    False
    dtype: bool
    

    Python 內置的 None 值也會被當做 NA 處理:

    In [171]: data[0] = NoneIn [172]: data.isnull()
    Out[172]: 
    0     True
    1    False
    2     True
    3    False
    dtype: bool
    

?

  1. 濾除缺失數據

    對于 Series,dropna 返回一個僅含非空數據和索引值的 Series:

    In [173]: data
    Out[173]: 
    0    None
    1       b
    2     NaN
    3       d
    dtype: objectIn [174]: data.dropna()
    Out[174]: 
    1    b
    3    d
    dtype: object
    # 也可以通過布爾型索引達到這個目的
    In [175]: data[data.notnull()]
    Out[175]: 
    1    b
    3    d
    dtype: object
    

    而對于 DataFrame 對象,稍微有點復雜,dropna 默認會丟棄任何含有缺失值的行:

    In [176]: data = DataFrame([[1,2,3],[1,np.nan,np.nan],...: [np.nan,np.nan,np.nan],[np.nan,4,5]])In [177]: cleaned = data.dropna()In [178]: data
    Out[178]: 0    1    2
    0  1.0  2.0  3.0
    1  1.0  NaN  NaN
    2  NaN  NaN  NaN
    3  NaN  4.0  5.0In [179]: cleaned
    Out[179]: 0    1    2
    0  1.0  2.0  3.0# 傳入 how='all' 將只丟棄全為 NA 的那些行
    In [181]: data.dropna(how='all')
    Out[181]: 0    1    2
    0  1.0  2.0  3.0
    1  1.0  NaN  NaN
    3  NaN  4.0  5.0
    

    要丟棄列,需要傳入 axis=1,表示在列上生效:

    In [183]: data[4] = np.nanIn [184]: data
    Out[184]: 0    1    2   4
    0  1.0  2.0  3.0 NaN
    1  1.0  NaN  NaN NaN
    2  NaN  NaN  NaN NaN
    3  NaN  4.0  5.0 NaNIn [185]: data.dropna(axis=1,how='all')
    Out[185]: 0    1    2
    0  1.0  2.0  3.0
    1  1.0  NaN  NaN
    2  NaN  NaN  NaN
    3  NaN  4.0  5.0
    

    ?

  2. 填充缺失數據

    要填充缺失的數據,主要使用 fillna 方法,通過調用 fillna(Number) 就會將缺失值替換為 Number 數值。

    In [186]: df
    Out[186]: one  two
    a  1.0  NaN
    b  2.0  3.0
    c  NaN  NaN
    d  0.0  2.0In [187]: df.fillna(100)
    Out[187]: one    two
    a    1.0  100.0
    b    2.0    3.0
    c  100.0  100.0
    d    0.0    2.0
    # fillna 默認會返回新對象,但是傳入 inplace=True 會對原有對象進行就地修改
    In [188]: df.fillna(200,inplace=True)In [189]: df
    Out[189]: one    two
    a    1.0  200.0
    b    2.0    3.0
    c  200.0  200.0
    d    0.0    2.0
    

  1. 層次化索引

    P164?

總結

以上是生活随笔為你收集整理的Pandas 基础 (5) —— 处理缺失数据及层次化索引的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。