跟着Datawhale动手学数据分析 2
数据清洗及特征处理
掌握基本操作以后,还需要进行数据清洗以及数据的特征处理,数据重构以及数据可视化。
查看缺失值
#判断列有无缺失值
df.isnull().any()
#查看具体缺失值个数
df.Age.isnull().sum()
处理缺失值
dropna函数:移除有缺失值的行
fillna函数:将缺失值填为0
df.dropna().head(10)
df.fillna(0).head(10)
直接将对应缺失值更改为具体数值:
df[df['Age']==None]=0
思考:在空缺值时,用np.nan要比用None好。
因为:None是Python自带的,其类型为python object。因此,None不能参与到任何计算中。object类型的运算要比int类型的运算慢得多。而np.nan是浮点类型,能参与到计算中。但计算的结果总是NaN
处理重复数据用到duplicates方法
df.drop_duplicates().head(10)
对数据进行离散化处理(以Age为例)
df['Ageband'] = pd.qcut(df['Age'],[0,0.1,0.3,0.5,0.7,0.9],labels = ['1','2','3','4','5'])
df.head()
使用正则表达式提取姓名中的信息
df['Title'] = df.Name.str.extract('([A-Za-z]+)\.', expand=False)
df.head()