python數據分析pandas中的DataFrame數據清洗


pandas中的DataFrame中的空數據處理方法:

方法一:直接刪除

1.查看行或列是否有空格(以下的df為DataFrame類型,axis=0,代表列,axis=1代表行,以下的返回值都是行或列索引加上布爾值)
isnull方法
查看行:df.isnull().any(axis=1)  
查看列:df.isnull().any(axis=0)
notnull方法:
查看行:df.notnull().all(axis=1)
查看列:df.notnull().all(axis=0)
例子:
df.isnull().any(axis=1) # 檢測行內是否有空值
0     False
1     True
2   False
3     True
4   False
5     True
6   False
7     True
8   False
9   False
dtype: bool
注意點:以上方法都可以用~取反的辦法獲取相反的結果
2.在1的前提下使用df.loc[],可取出1中篩選出數據的具體數據如:
df.loc[df.isnull().any(axis=1)]
取出這幾行的索引可用屬性index如:df.loc[df.isnull().any(axis=1)].index
得到這些索引后可以使用drop方法進行刪除如:
注意:drop方法中的axis值與其他方法相反,axis=0表示行,=1表示列。
df.drop(labels=drop_index, axis=0)

總結下來為4步:
一.使用isnull或notnull篩選:df.isnull().any(axis=0)
二.使用loc取出具體數據:df.loc[df.isnull().any(axis=1)]
三:取出這些數據的索引:df.loc[df.isnull().any(axis=1)].index
四.使用drop刪除:df.drop(labels=drop_index, axis=0)
 

方法二:填充空值

步驟和方法一前幾步相同
isnull()
notnull()
dropna(): 過濾丟失數據(df.dropna() 可以選擇過濾的是行還是列(默認為行):axis中0表示行,1表示的列)
fillna(): 填充丟失數據(可以選擇自主添加數據,或者用表中原有的數據進行補充)

1.使用dropna(不常用):df.dropna(axis=0)
2.使用fillna(常用):
一.df.fillna(value=666)給所有的控制賦值為666
二.df.fillna(method='ffill', axis=0) # axis=0表示在垂直方向填充(axis值:0為垂直,1為水平),使用上方的值對空值進行填充,組合起來就是,使用垂直方向上方的值對當前位置的值進行填充
三.df.fillna(method='bfill', axis=1) # axis=1表示在水平方向填充(axis值為0垂直1為水平),bfill表示使用后面的值對空值進行填充,組合起來就是,使用水平方向右邊的值對當前位置的值進行填充
總結:ffill(前)和bfill(后)決定前或后,axis決定垂直或水平


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM