缺失值处理
df.isnull().sum()
df.dropna()
df["Age"].dropna()
df.fillna(0)
重复值处理
df.duplicated()
df.drop_duplicates()
特征处理
- 数据分箱:对年龄这种连续性数据离散化:平均分为几个阶段、设定间隔分段、按照百分比分段;
df["AgeBand"]=pd.cut(df["Age"],5,labels=["1","2","3","4","5"])
df["AgeBand"]=pd.cut(df["Age"],[0,5,15,30,50,80],labels=["1","2","3","4","5"])
df["AgeBand"]=pd.qcut(df["Age"],[0,0.1,0.3,0.5,0.7,0.9],labels=["1","2","3","4","5"])
- 文本类型数据转化:对性别、船舱这种文本可分类的数据转换成数值类型;
df["Sex"].value_counts()
df["Sex"].unique()
df["Sex"].replace(["male","female"],[1,2])
or
df["Sex"].map({"male":1,"female":2})
- 从特征里提取出特征:从姓名的特征中可以提取出来Mr ,Miss等信息
df["Title"]=df["name"].str.extract("[A-Za-z]+)\.",expand=False)
遗留问题:
- 缺失值一定会影响数据分析么?
- 为什么离散化的数据会对模型的鲁棒性有利?
- 使用sklearn来进行替换?
- 正则表达式