• 06-panda缺失数据处理


    import numpy as np
    import pandas as pd
    #1.数据筛选
    arr1=np.array([1,None,3,4])
    print(arr1)#None不能参与计算
    
    arr2=np.arange(1000,dtype=int).sum()
    print(arr2)#叠加计算
    
    arr3=np.array([1,2,np.nan])#不方便的数字用nan代表
    print(arr3)
    print(arr3.sum())#nan极大值
    print(np.nansum(arr3))#忽略nan计算
    
    arr4=pd.Series([1,2,3,4,5,np.nan,None])
    print(arr4)#nan与None当作缺失数据
    print(type(arr4[5]))#虽然不是数字但是存储方式还是float分配的
    
    arr5=pd.Series([1,2,3,"abc",np.nan,None])
    print(arr5.isnull())#筛选缺失数据
    print(arr5.notnull)#筛选确实数据
    print(arr5.dropna())#过滤缺失数据
    
    print("------------------------------------")
    arr6=pd.DataFrame([[1,2,3,4,np.nan],
                       [5,6,np.nan,np.nan,np.nan],
                       [51,61,np.nan,np.nan,78],
                       [100,200,300,400,500]])
    print(arr6.dropna())#筛选缺失的行
    print(arr6.dropna(axis=0))#筛选缺失的行
    print(arr6.dropna(axis=1))#筛选缺失的列
    print(arr6.dropna(axis="columns",how="all"))#列全是nan筛选
    print(arr6.dropna(axis="columns",how="any"))#列只要有一个筛选,index代表行
    
    #2.数据填充
    arr7=pd.Series([1,np.nan,2,None,"nimei"],index=list("ABCDE"))
    arr7.fillna(0)#加法缺失数据填充为0
    arr7.fillna(1)#乘法缺失数据填充为1
    
    arr8=pd.Series([1,np.nan,2,None,3],index=list("ABCDE"))
    arr8.fillna(method="ffill")#参考前面的值填充
    arr8.fillna(method="bfill")#参考后面的值填充
    
    arr9=pd.DataFrame([[1,2,3,np.nan,np.nan],
                       [5,6,np.nan,np.nan,np.nan],
                       [51,61,np.nan,np.nan,78],
                       [100,200,300,400,500]])
    arr9.fillna(0)#所有数字填充为0
    arr9.fillna(method="ffill",axis=1)#按照行填写,前方没有数据就不填
    arr9.fillna(method="ffill",axis=0)#按照列填写,前方没有数据就不填
    

      

  • 相关阅读:
    剑指offer-树的子结构
    剑指offer-二叉搜索树的后序遍历序列
    剑指offer-调整数组顺序使奇数位于偶数前面
    剑指offer-包含min函数的栈
    剑指offer-从上往下打印二叉树
    剑指offer-链表中倒数第k个结点
    剑指offer-合并两个排列的链接
    剑指offer-替换空格
    剑指offer-旋转数组的最小数字
    剑指offer-数字在排序数组中出现的次数
  • 原文地址:https://www.cnblogs.com/wcyMiracle/p/12441641.html
Copyright © 2020-2023  润新知