QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1755|回复: 0
打印 上一主题 下一主题

金融风控训练营task2-赛题理解学习笔记

[复制链接]
字体大小: 正常 放大

906

主题

65

听众

17万

积分

  • TA的每日心情
    开心
    2023-3-15 17:49
  • 签到天数: 224 天

    [LV.7]常住居民III

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    跳转到指定楼层
    1#
    发表于 2021-5-28 17:44 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    1. 导入数据分析及可视化过程需要的库
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    import datetime
    import warnings
    warnings.filterwarnings('ignore')
    1
    2
    3
    4
    5
    6
    7
    2. 读取文件
    2.1 拓展知识
    pandas读取数据时相对路径载入报错时,尝试使用os.getcwd()查看当前工作目录。

    SV与CSV的区别:

    SV是用制表符(Tab,’\t’)作为字段值的分隔符;CSV是用半角逗号(’,’)作为字段值的分隔符
    读取文件的部分

    通过nrows参数,来设置读取文件的前多少行(不包括列名),nrows是一个大于等于0的整数。
    pd.read_csc("train.csv",nrows=5)

    分块读取

    read_csv 和 read_table 有一个 chunksize 参数,用以指定一个块大小(每次读取多少行),返回一个可迭代的 TextFileReader 对象。
    #设置chunksize参数,来控制每次迭代数据的大小
    i = 0  # 控制输出
    chunker = pd.read_csv("train.csv",chunksize=5)
    for item in chunker:
    print(type(item))
    #<class 'pandas.core.frame.DataFrame'>
    print(len(item))
    i+=1
    if i >= 4:   # 由于数据量过大,限制输出4条就跳出循环
        break
    #5
    >>>
    <class 'pandas.core.frame.DataFrame'>
    5
    <class 'pandas.core.frame.DataFrame'>
    5
    <class 'pandas.core.frame.DataFrame'>
    5
    <class 'pandas.core.frame.DataFrame'>
    5
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    3. 基本常用函数
    3.1 查看数据集的样本个数和原始特征维度
    describe默认统计数值型数据的各个(特征)统计量 : data_train.describe()
    append将截取得数据拼在一起 : data_train.head(3).append(data_train.tail(3))
    3.2 查看数据集中特征缺失值,唯一值等
    3.2.1 查看缺失值

    print(f'There are {data_train.isnull().any().sum()} columns in train dataset with missing values.')
    >>> There are 22 columns in train dataset with missing values.
    #上面得到训练集有22列特征有缺失值
    1
    2
    3
    df.isnull() 是元素级别的判断,可以用来查看每个单元格是否缺失(与sina()没有区别),isnull生成的是所有数据的true/false矩阵
    isnull().any(),是列级别的判断,只要该列有为空或者NA的元素,就为True,否则False
    使用all就是全部非缺失值,如果是any就是至少有一个不是缺失值
    isnull().sum(),将列中为空的个数统计出来
    3.2.2 进一步查看缺失特征中缺失率大于50%的特征

    have_null_fea_dict = (data_train.isnull().sum()/len(data_train)).to_dict()
    fea_null_moreThanHalf = {}
    #生成列名为key其缺失率为value的字典,包括缺失率为0的列
    for key,value in have_null_fea_dict.items():
        if value > 0.5:
            fea_null_moreThanHalf[key] = value

    fea_null_moreThanHalf
    >>> {}
    1
    2
    3
    4
    5
    6
    7
    8
    9
    3.2.3 具体的查看缺失特征及缺失率

    # nan可视化
    missing = data_train.isnull().sum()/len(data_train)
    #同样返回所有列名及其缺失值但不是字典
    missing = missing[missing > 0]
    #去掉没有数据缺失的
    missing.sort_values(inplace=True)
    #排序
    missing.plot.bar()
    #画出柱状图
    1
    2
    3
    4
    5
    6
    7
    8
    9

    默认缺失的值类型全为np.nan,上面的示例帮助我们总想了解哪些列存在“nan”,并且可以把nan的个数打印。若nan个数很多则可以考虑将这一列删除。
    此外,我们可以进行横向比较,某些样本数据的大部分列是缺失的,且在样本足够的情况下可以考虑将其删除
    【补充】

    inplace参数:作用为 是否在原对象基础上进行修改

    inplace = True:不创建新的对象,直接对原始对象进行修改;
    inplace = False:对数据进行修改,创建并返回新的对象承载其修改结果,原对象不变
    默认是false
    inplace的值只有这两个
    画图

    figsize=() 用来表示figure 的大小为宽、长(单位为inch)
    直方图hist
    hist函数:查看df中所有值列的直方图
    plot函数:df[‘col’].plot(kind = ‘hist’);
    柱状图 bar / 横向 barh
    df[‘col’].value_counts().plot(kind = ‘bar’);
    value_counts()是按数量多少排序的
    饼状图 pie
    df[‘col’].value_counts().plot(kind = ‘pie’, figsize = (8,8));
    散点图 scatter
    一整个df的:pd.plotting.scatter_matrix(df, figsize=(15,15)); 该函数还会展示每个变量的直方图
    单独的散点图:df.plot(x = ‘col1’, y = ‘col2’, kind = ‘scatter’);
    箱线图 box
    3.2.4 查看训练集测试集中特征属性只有一值的特征

    one_value_fea = [col for col in data_train.columns if data_train[col].nunique() <= 1]
    one_value_fea_test = [col for col in data_test_a.columns if data_test_a[col].nunique() <= 1]
    # one_value_fea,one_value_fea_test 返回的值都是['policyCode'],所以这一列参考价值不大,可去掉
    ————————————————
    版权声明:本文为CSDN博主「颯沓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_52037667/article/details/116171991


    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-1 02:00 , Processed in 0.422656 second(s), 51 queries .

    回顶部