亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python Pandas對缺失值的處理方法

 更新時間:2019年09月27日 08:35:53   作者:乒乓球雞蛋  
這篇文章主要給大家介紹了關(guān)于Python Pandas對缺失值的處理方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Python Pandas具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

Pandas使用這些函數(shù)處理缺失值:

  • isnull和notnull:檢測是否是空值,可用于df和series
  • dropna:丟棄、刪除缺失值
    • axis : 刪除行還是列,{0 or ‘index', 1 or ‘columns'}, default 0
    • how : 如果等于any則任何值為空都刪除,如果等于all則所有值都為空才刪除
    • inplace : 如果為True則修改當前df,否則返回新的df
  • fillna:填充空值
    • value:用于填充的值,可以是單個值,或者字典(key是列名,value是值)
    • method : 等于ffill使用前一個不為空的值填充forword fill;等于bfill使用后一個不為空的值填充backword fill
    • axis : 按行還是列填充,{0 or ‘index', 1 or ‘columns'}
    • inplace : 如果為True則修改當前df,否則返回新的df
import pandas as pd

實例:特殊Excel的讀取、清洗、處理

步驟1:讀取excel的時候,忽略前幾個空行

studf = pd.read_excel("./datas/student_excel/student_excel.xlsx", skiprows=2)
studf

Unnamed: 0 姓名 科目 分數(shù)
0 NaN 小明 語文 85.0
1 NaN NaN 數(shù)學(xué) 80.0
2 NaN NaN 英語 90.0
3 NaN NaN NaN NaN
4 NaN 小王 語文 85.0
5 NaN NaN 數(shù)學(xué) NaN
6 NaN NaN 英語 90.0
7 NaN NaN NaN NaN
8 NaN 小剛 語文 85.0
9 NaN NaN 數(shù)學(xué) 80.0
10 NaN NaN 英語 90.0

步驟2:檢測空值

studf.isnull()

Unnamed: 0 姓名 科目 分數(shù)
0 True False False False
1 True True False False
2 True True False False
3 True True True True
4 True False False False
5 True True False True
6 True True False False
7 True True True True
8 True False False False
9 True True False False
10 True True False False

studf["分數(shù)"].isnull()
0 False
1 False
2 False
3 True
4 False
5 True
6 False
7 True
8 False
9 False
10 False
Name: 分數(shù), dtype: bool
studf["分數(shù)"].notnull()
0 True
1 True
2 True
3 False
4 True
5 False
6 True
7 False
8 True
9 True
10 True
Name: 分數(shù), dtype: bool
# 篩選沒有空分數(shù)的所有行
studf.loc[studf["分數(shù)"].notnull(), :]

Unnamed: 0 姓名 科目 分數(shù)
0 NaN 小明 語文 85.0
1 NaN NaN 數(shù)學(xué) 80.0
2 NaN NaN 英語 90.0
4 NaN 小王 語文 85.0
6 NaN NaN 英語 90.0
8 NaN 小剛 語文 85.0
9 NaN NaN 數(shù)學(xué) 80.0
10 NaN NaN 英語 90.0

步驟3:刪除掉全是空值的列

studf.dropna(axis="columns", how='all', inplace=True)
studf

姓名 科目 分數(shù)
0 小明 語文 85.0
1 NaN 數(shù)學(xué) 80.0
2 NaN 英語 90.0
3 NaN NaN NaN
4 小王 語文 85.0
5 NaN 數(shù)學(xué) NaN
6 NaN 英語 90.0
7 NaN NaN NaN
8 小剛 語文 85.0
9 NaN 數(shù)學(xué) 80.0
10 NaN 英語 90.0

步驟4:刪除掉全是空值的行

studf.dropna(axis="index", how='all', inplace=True)
studf

姓名 科目 分數(shù)
0 小明 語文 85.0
1 NaN 數(shù)學(xué) 80.0
2 NaN 英語 90.0
4 小王 語文 85.0
5 NaN 數(shù)學(xué) NaN
6 NaN 英語 90.0
8 小剛 語文 85.0
9 NaN 數(shù)學(xué) 80.0
10 NaN 英語 90.0

步驟5:將分數(shù)列為空的填充為0分

studf.fillna({"分數(shù)":0})

姓名 科目 分數(shù)
0 小明 語文 85.0
1 NaN 數(shù)學(xué) 80.0
2 NaN 英語 90.0
4 小王 語文 85.0
5 NaN 數(shù)學(xué) 0.0
6 NaN 英語 90.0
8 小剛 語文 85.0
9 NaN 數(shù)學(xué) 80.0
10 NaN 英語 90.0

# 等同于
studf.loc[:, '分數(shù)'] = studf['分數(shù)'].fillna(0)
studf

姓名 科目 分數(shù)
0 小明 語文 85.0
1 NaN 數(shù)學(xué) 80.0
2 NaN 英語 90.0
4 小王 語文 85.0
5 NaN 數(shù)學(xué) 0.0
6 NaN 英語 90.0
8 小剛 語文 85.0
9 NaN 數(shù)學(xué) 80.0
10 NaN 英語 90.0

步驟6:將姓名的缺失值填充

使用前面的有效值填充,用ffill:forward fill

studf.loc[:, '姓名'] = studf['姓名'].fillna(method="ffill")
studf

姓名 科目 分數(shù)
0 小明 語文 85.0
1 小明 數(shù)學(xué) 80.0
2 小明 英語 90.0
4 小王 語文 85.0
5 小王 數(shù)學(xué) 0.0
6 小王 英語 90.0
8 小剛 語文 85.0
9 小剛 數(shù)學(xué) 80.0
10 小剛 英語 90.0

步驟7:將清洗好的excel保存

studf.to_excel("./datas/student_excel/student_excel_clean.xlsx", index=False)

總結(jié)

以上就是我在處理客戶端真實IP的方法,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論