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)#按照列填写,前方没有数据就不填

  

猜你喜欢

转载自www.cnblogs.com/wcyMiracle/p/12441641.html