重点:
1.缺失值空值的处理
1.1空值的查看
函数: df[df.Cabin.isna()]
info()
isnull().sum()
1.2空值处理
1.2.1空值的删除 函数:dropna()
1.2.2空值的替换 函数:df[df['Age']==None]=0
df[df['Age'].isnull()] = 0
df[df['Age'] == np.nan] = 0
df[df.Age.isna()]
注意:空缺值的数据类型为float64所以用None一般索引不到,比较的时候最好用np.nan
2.重复值的处理
pandas.DataFrame.duplicated — pandas 1.3.0 documentation (pydata.org)
pandas || df.dropna() 缺失值删除_一个还在挣扎的码农的博客-CSDN博客
2.1查看
函数:df[df.duplicated()]
2.2删除
df = df.drop_duplicates()
df.head()
2.3 填充 pandas.DataFrame.fillna — pandas 1.3.0 documentation (pydata.org)
fill函数
bfill pandas.DataFrame.bfill — pandas 1.3.0 documentation (pydata.org)
ffill & meanfill
2.3 特征观察与处理
分箱函数 cut
RFM模型可用??
1)将连续变量Age平均分箱成5个年龄段,并分别用类别变量12345表示
df['AgeBand'] = pd.cut(df['Age'], 5,labels = [1,2,3,4,5])
2)指定区间分箱:将连续变量Age划分为(0,5] (5,15] (15,30] (30,50] (50,80]五个年龄段,并分别用类别变量12345表示
df['AgeBand'] = pd.cut(df['Age'],[0,5,15,30,50,80],labels = [1,2,3,4,5])
3)百分比分箱:将连续变量Age按10% 30% 50 70% 90%五个年龄段,并用分类变量12345表示
df['AgeBand'] = pd.qcut(df['Age'],[0,0.1,0.3,0.5,0.7,0.9],labels = [1,2,3,4,5])