数据分析中的'疑难杂症'小结(二)

数据分析中的‘疑难杂症‘小结(二)

1. 如何对整个DataFrame数据的缺失值进行处理

  • 使用dropna()直接删除含有缺失值的行

  • 使用fillna(num)进行缺失值的替换填充

    例如:df.dropna().head(3) / df.fillna(0).head(3)

2. 数据中重复值的查看

  • 使用duplicated()判断重复数值,说明:duplicated()是对整行进行查重,return 重复了的数据,且只现实n-1条重复的数据(n是重复的次数)

    例如:df[df.duplicate()]

  • drop_duplicates()函数是将所有重复的数据都去掉了,且默认保留重复数据的第一条。

    例如:frame.drop_duplicates()

3. 数据预处理的分箱操作

在建立模型前一般需要对特征变量进行离散化。特征离散化后,模型会更稳定,降低模型过拟合的风险。而特征离散化处理通常采用的就是分享法。数据分箱又分为有监督分箱和无监督分箱,石佛使用标签决定是有监督还是无监督。

简单的数值分距使用pd.cut,按频率分距使用pd.qcut

具体分箱细节:https://blog.csdn.net/qq_22172133/article/details/118883524

4. 查看文本变量的三种方式

  • value_counts

显示变量名及其对应数量。例如:df[‘Sex‘].value_counts()

  • unique

显示变量名。例如:df[‘Sex‘].unique()

  • nunique

显示变量名种类数。例如:df[‘Sex‘].nunique()

5. 类别文本的转换

  • replace来实现

例如:df[‘Sex_num‘] = df[‘Sex‘].replace([‘male‘,‘female‘],[1,2])

  • map实现

例如:df[‘Sex_num‘] = df[‘Sex‘].map({‘male‘: 1, ‘female‘: 2})

  • sklearn preprocessing中的LabelEncoder实现
from sklearn.preprocessing import LabelEncoder
for feat in [‘Cabin‘, ‘Ticket‘]:
    lbl = LabelEncoder()  
    label_dict = dict(zip(df[feat].unique(), range(df[feat].nunique())))
    df[feat + "_labelEncode"] = df[feat].map(label_dict)
    df[feat + "_labelEncode"] = lbl.fit_transform(df[feat].astype(str))

df.head()

6. 类别文本转one-hot编码

  • pd.get_dummies进行编码转化
x = pd.get_dummies(df[feat], prefix=feat)

具体用法:https://blog.csdn.net/maymay_/article/details/80198468

7. 文本特征提出

  • str.extract实现正则表达式抽取
df[‘Title‘] = df.Name.str.extract(‘([A-Za-z]+)\.‘, expand=False)

数据分析中的'疑难杂症'小结(二)

数据分析中的'疑难杂症'小结(二)

上一篇:Centos系统下Rstudio-server调用conda安装的R4.1流程总结


下一篇:turtle画太阳