zoukankan      html  css  js  c++  java
  • 数据分析中的'疑难杂症'小结(二)

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

    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)
    

  • 相关阅读:
    Qt支持中文显示
    C/C++ 知识点---LIB和DLL的区别与使用(网摘)
    Inno Setup
    C/C++ 知识点---字符串函数
    es5 JSON对象
    Es567严格模式
    mysql常用命令
    promise 获取文件内容
    postman连接不了localhost问题解决
    node---处理post请求
  • 原文地址:https://www.cnblogs.com/MurasameLory-chenyulong/p/15086779.html
Copyright © 2011-2022 走看看