一、数据探索
- 查看数据前5行:dataframe.head()
- 查看数据的信息,包括每个字段的名称、非空数量、字段的数据类型:data.info()
- 查看数据的统计概要(count/mean/std/min/25%/50%/75%max):data.describe()
- 查看dataframe的大小:dataframe.shape
二、数据质量分析
1.缺失值分析
1.1 查看缺失情况
元素级别的判断,把对应的所有元素的位置都列出来,元素为空或者NA就显示True,否则就是False
列级别的判断,只要该列有为空或者NA的元素,就为True,否则False
- missing = dataframe.columns[ dataframe.isnull().any() ].tolist()
将为空或者NA的列找出来
- dataframe [ missing ].isnull().sum()
将列中为空或者NA的个数统计出来
- len(data["feature"] [ pd.isnull(data["feature"]) ]) / len(data))
缺失值比例
1.2 缺失值处理方式
- 缺失值少:插补(均值插补、中位数插补、众数插补、固定值插补、最近数据插补、回归插补、拉格朗日插值、牛顿插值法、分段插值、用预测值填充 等)
-
- dataframe.loc [ dataframe [ column ] .isnull(),column ] = value 将某一列column中缺失元素的值,用value值进行填充。
- data.Age.fillna(data.Age.mean(),inplace=True) 将age列缺失值填充均值。
- dataframe [age] [ dataframe.age.isnull() ] = dataframe.age.dropna().mode().values #众数填补 , mode()函数就是取出现次数最多的元素。
- dataframe [‘age‘].fillna(method=‘pad‘) #使用前一个数值替代空值或者NA,就是NA前面最近的非空数值替换
- dataframe [‘age‘].fillna(method=‘bfill‘,limit=1) #使用后一个数值替代空值或者NA,limit=1就是限制如果几个连续的空值,只能最近的一个空值可以被填充。
- df.interpolate():对于时间序列的缺失,可以使用这种方法。
- import lightgbm as lgb :采用lgb来预测缺失值填补
- 缺失值多:不处理,不使用该类型数据
- new_drop = dataframe.dropna ( axis=0,subset=["Age","Sex"] ) 【在子集中有缺失值,按行删除】
- new_drop = dataframe.dropna ( axis=1) 【将dataframe中含有缺失值的所有列删除】
- 缺失值适中:将缺失当做新的一类,如one-hot来处理
2.异常值分析
2.1查看异常情况
先画数据的散点图。观察偏差过大的数据,是否为异常值;
或者画箱型图,箱型图识别异常值比较客观,因为它是根据3σ原则,如果数据服从正态分布,若超过平均值的3倍标准差的值被视为异常值。
2.2 异常值处理方式
视为缺失值、删除、修补(平均数、中位数等)、不处理。
中位数比平均值插值好一点,因为受异常值影响较小。
3.一致性分析
4.重复数据或含有特殊符号的数据分析
三、数据特征分析
1.分布
2.对比
3.周期性
4.相关性
5.常见统计量等
参考文献:
【1】Python数据分析2------数据探索
数据探索---EDA
原文:https://www.cnblogs.com/nxf-rabbit75/p/11148932.html