kaggle学习 eloData项目(1)-数据校验

server/2024/11/13 16:39:32/

文章目录

  • kaggle学习 eloData项目(1)-数据校验
    • (1) 数据基本情况查看
    • (2) 数据校验
    • (3) 数据探究
  • 小结

kaggle_eloData1_1">kaggle学习 eloData项目(1)-数据校验

  不能懈怠,加油,eloData项目在B站有讲解课,趁着热乎赶紧学一下。文章参考:kaggle比赛案例:Elo Merchant Category Recommendation(1)

  • 库文件
python">import os
import numpy as np
import pandas as pd
import gc       # 主动管理内存,清理内存需要
import seaborn as sns
import matplotlib.pyplot as plt

(1) 数据基本情况查看

  • 1.1 读取表格数据
python">    df = pd.read_excel('./eloData/Data_Dictionary.xlsx',header=2,sheet_name='train')print(df)
  • 1.2 读取表格数据的前五个查看
python">    df = pd.read_csv('./eloData/sample_submission.csv',header=0).head(5)print(df)
  • 1.3 读取数据的基本信息
python">    df = pd.read_csv('./eloData/sample_submission.csv', header=0).info()print(df)
  • 1.4 读取训练集与测试集数据
python">    train = pd.read_csv('./eloData/train.csv')test = pd.read_csv('./eloData/test.csv')print(train.shape,test.shape)

(2) 数据校验

  • 2.1 训练集 id 是否有重复
python">    if train['card_id'].nunique() == train.shape[0]:print("2.1.1True")# 测试集 id 是否有重复if test['card_id'].nunique() == test.shape[0]:print("2.1.2True")# 检验 训练集与测试集的id 是否唯一if ((train['card_id'].nunique()+test['card_id'].nunique())== len(set(train['card_id'].values.tolist()+test['card_id'].values.tolist())))  :print("2.1.3True")
  • 2.2 检验数据确实情况
python">    # 按列缺失值汇总查询# 训练集print(train.isnull().sum())# 测试集 缺失一条print(test.isnull().sum())
  • 2.3 异常值检测
python">    # 查看标签列是否有异常statistics = train['target'].describe();print("statistics",statistics)sns.set()sns.histplot(train['target'],kde=True)# plt.show()# 找出异常值 查看print("异常值个数:",(train['target']<-30).sum())# 异常值占比确认 一般采用 3δ 原则print("异常值范围:",statistics.loc['mean']-3*statistics.loc['std'])
  • 补充:聊聊python dropna()和notnull()的用法区别
  • 当未精确定位到某一列,但该列中存在空值时,dropna()会将空值所在行删除,而notnull()不会删除;在精确定位到某一列后,dropna()会输出series,而notnull()输出DataFrame。

(3) 数据探究

  • 3.1 单因素分析
python">    np.sort(train['first_active_month'].unique())print(len(np.sort(train['first_active_month'].unique())))# pandas的notnull函数,用于返回非空值的集合。np.sort(test[test.notnull()['first_active_month']]['first_active_month'].unique())print(len(np.sort(test[test.notnull()['first_active_month']]['first_active_month'].unique())))# 绘图查看异常值(train['feature_1'].value_counts().sort_index()/train.shape[0]).plot()(test['feature_1'].value_counts().sort_index()/train.shape[0]).plot()plt.legend(['train','test'])plt.xlabel('feature_1')plt.ylabel('ratio')plt.show()
  • 3.2 多因素联合分布
python">    features = train.columnsfeatures_ = features.drop(['card_id','target'])n = len(features_)for i in range(n-1):for j in range(i+1,n):f1 = features_[i]f2 = features_[j]train_com = train[[f1,f2]]test_com = test[[f1,f2]]com1 = train_com[f1].values.astype(str).tolist()com2 = train_com[f2].values.astype(str).tolist()com1_ = test_com[f1].values.astype(str).tolist()com2_ = test_com[f2].values.astype(str).tolist()data1 = pd.Series([com1[i]+'&'+com2[i] for i in range(train.shape[0])]).value_counts().sort_index()/train.shape[0]data2 = pd.Series([com1_[i] + '&' + com2_[i] for i in range(test.shape[0])]).value_counts().sort_index()/test.shape[0]data1.plot()data2.plot()plt.legend(['train', 'test'])plt.xlabel('&'.join([f1,f2]))plt.ylabel('ratio')plt.show()
  • 放一张图展示一下;
    在这里插入图片描述

小结

  海到无边天作岸,山登绝顶我为峰。
  总之,加油,共勉吧!


http://www.ppmy.cn/server/140858.html

相关文章

【MySQL】数据的增删查改

文章目录 1. 插入数据(Create)1.1 全列插入1.2 指定列插入1.3 多行数据插入1.4 插入否则更新1.5 替换 2. 读取数据(Retrieve)2.1 select列2.2 where条件2.3 结果排序2.4 筛选分页结果 3. 修改数据(Update)4. 删除数据(delete)4.1 删除数据4.2 截断表 5. 插入查询的结果6. 分组与…

工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置

工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置...-CSDN博客 工作流初始错误 泛微提交流程提示_泛微OA 工作流WebService接口使用说明 工作流初始错误 泛微提交流程提示_泛微OA 工作流WebService接口使用说明-CSDN博客 工作…

MAC 安装 brew及其常用命令

​文章&#xff1a;Mac安装brew的四种方法&#xff08;指定能行&#xff09; 以下是在 Mac 上使用 Homebrew 清理缓存和无用包的详细指南&#xff1a; 1. 查看系统状态 # 诊断系统问题 brew doctor# 查看已安装的包 brew list# 查看系统占用空间 brew cleanup -n # 预览需要…

酒店行业数据仓库

重要名词&#xff1a; PMS&#xff1a;酒店管理系统CRS&#xff1a;中央预定系统客户&#xff1a;可以分为会员、散客&#xff08;自行到店入住&#xff09;、协议&#xff08;与酒店长期合作&#xff0c;内部价&#xff09;、中介预定&#xff1a;可以分为线上预定、线下预定…

共享经济下的SpringBoot汽车管理创新

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

5G NR gNB 逻辑架构及其功能拆分选项

5G NR gNB 逻辑架构及其功能拆分选项 中央单元 (CU) 和分布式单元功能拆分选项RAN 分体架构的优势在哪里使用哪个拆分函数&#xff1f;参考&#xff1a; 5G NR gNB Logical Architecture and It’s Functional Split OptionsCentral Unit (CU) and Distributed Unit Functional…

Web前端效果展示:腺体超声图像分割

腺体超声图像分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-DCNV2-Dynamic&#xff06;yolov8-seg-C2f-DiverseBranchBlock等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge …

Node.js-API 限流与日志优化

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;node.js篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来node.js篇专栏内容:node.js-API 限流与日志优化 前言 在前几篇文章中&#xff0c;我们已经为 API 添加了身份…