当前位置: 首页 > news >正文

Python每日一练(牛客数据分析篇新题库)——第34天:数据清洗

前言📢📢

最近很多学了基础的小伙伴问我该怎么提升编程水平?学了基础该上哪刷题?明明学了很多,做项目却不知道怎么上手,其实这就是练得太少,只注重了学,却忽视了刷题,只有不断练习才能提高和巩固编程思维和能力!

在这里插入图片描述

刚好看到牛客网最近出了Python的新题库于是体验了一番感觉还不错

在这里插入图片描述

链接地址:牛客网 | Python从入门到实践四十招,废话少说速度上号,或者跟着下文一起刷题!!!



1. 去掉信息不全的用户

描述: 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户ID
Level:等级
Achievement_value:成就值
Num_of_exercise:刷题量
Graduate_year:毕业年份
Language:常用语言
Continuous_check_in_days:最近连续签到天数
Number_of_submissions:提交代码次数
Last_submission_time:最后一次提交题目日期
运营同学正在做用户调研,为了保证调研的可靠性,想要去掉那些信息不全的用户,即去掉有缺失数据的行,请你帮助他去掉后输出全部数据。

在这里插入图片描述

实现代码:

import pandas as pd

Nowcoder = pd.read_csv('Nowcoder.csv', sep=',', dtype=object)
pd.set_option('display.width', 300)  # 设置字符显示宽度
pd.set_option('display.max_rows', None)  # 设置显示最大行
pd.set_option('display.max_columns', None)
print(Nowcoder.dropna(how = 'any'))

运行结果:

在这里插入图片描述



2. 修补缺失的用户数据

描述: 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户ID
Level:等级
Achievement_value:成就值
Num_of_exercise:刷题量
Graduate_year:毕业年份
Language:常用语言
Continuous_check_in_days:最近连续签到天数
Number_of_submissions:提交代码次数
Last_submission_time:最后一次提交题目日期
运营同学拿到了这份用户文件,但是由于系统BUG,出现了部分缺失的值,请你使用当前的最大年份填充缺失的毕业年份(“Graduate_year”),用Python填充缺失的常用语言(“Language”),用成就值的均值(四舍五入保留整数)填充缺失的成就值(“Achievement_value”)。

在这里插入图片描述

实现代码:

import pandas as pd

Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
pd.set_option('display.width', 300)  # 设置字符显示宽度
pd.set_option('display.max_rows', None)  # 设置显示最大行
pd.set_option('display.max_columns', None)
max_year=Nowcoder['Graduate_year'].max()
achieve_avg=Nowcoder['Achievement_value'].mean()
print(Nowcoder.fillna({'Graduate_year':max_year,'Language':'python','Achievement_value':achieve_avg}))

运行结果:

在这里插入图片描述



3. 解决牛客网用户重复的数据

描述: 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户ID
Level:等级
Achievement_value:成就值
Num_of_exercise:刷题量
Graduate_year:毕业年份
Language:常用语言
Continuous_check_in_days:最近连续签到天数
Number_of_submissions:提交代码次数
Last_submission_time:最后一次提交题目日期
牛牛拿到这份文件的时候一脸懵逼,因为系统错误将很多相同用户的数据输出了多条,导致文件中有很多重复的行,请先检查每一行是否重复,然后输出删除重复行后的全部数据。

在这里插入图片描述

实现代码:

import pandas as pd

Nowcoder = pd.read_csv('Nowcoder.csv', sep=',', dtype=object)
pd.set_option('display.width', 1000)
pd.set_option('display.max_rows', None)

print(Nowcoder.duplicated(subset=None, keep='first'))
print(Nowcoder.drop_duplicates())

运行结果:

在这里插入图片描述



4. 统一最后刷题日期的格式

描述: 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户ID
Level:等级
Achievement_value:成就值
Num_of_exercise:刷题量
Graduate_year:毕业年份
Language:常用语言
Continuous_check_in_days:最近连续签到天数
Number_of_submissions:提交代码次数
Last_submission_time:最后一次提交题目日期
运营同学发现最后一次提交题目日期这一列有各种各样的日期格式,这对于他分析用户十分不友好,你能够帮他输出用户ID、等级以及统一后的日期吗?(日期格式统一为yyyy-mm-dd)

在这里插入图片描述

实现代码:

import pandas as pd
#read_csv自带参数parse_dates,讲字段为datetime
df = pd.read_csv('Nowcoder.csv', sep=',', dtype=object,parse_dates=['Last_submission_time'])
pd.set_option('display.width', 1000)
pd.set_option('display.max_rows', None)
 
print(df[['Nowcoder_ID','Level','Last_submission_time']])

运行结果:

在这里插入图片描述



5. 如何让刷题更加高效呢?

嫌博主更新慢的小伙伴牛客网上号自行刷题

在这里插入图片描述

链接地址:牛客网 | Python从入门到实践四十招,废话少说速度上号!!!

相关文章:

  • mysql为什么使用B+树
  • 爬虫学习笔记 -- 实战某电影网(lxml库版)
  • hive on spark下row_number()问题排查
  • 最新面试题:用友OC,美团三面已挂
  • 开发者API管理神器Eolink,比postman好用
  • Mysql - 分库分表
  • 计算机毕业设计django基于python的高校奖学金管理系统(源码+系统+mysql数据库+Lw文档)
  • 软件测试的学习笔记(1)
  • c++11基础
  • 一个发誓不用Java的程序员,不得不在太空中调试Lisp
  • Android音频子系统(十一)------耳机返听(耳返)原理实现
  • 【探花交友】前后端分离、开发工具、环境搭建
  • FPGA 之 时序分析
  • 【Android进阶】13、对话框
  • RTX3090+win10+CUDA11.6+cudnn8.5.0+pytorch1.12.1 环境——个人配置经验
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • HTTP中GET与POST的区别 99%的错误认识
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • mysql常用命令汇总
  • mysql外键的使用
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Sublime text 3 3103 注册码
  • 初识 beanstalkd
  • 初探 Vue 生命周期和钩子函数
  • 创建一种深思熟虑的文化
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 前端之Sass/Scss实战笔记
  • 微信小程序实战练习(仿五洲到家微信版)
  • 中文输入法与React文本输入框的问题与解决方案
  • 自定义函数
  • postgresql行列转换函数
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # C++之functional库用法整理
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (Java)【深基9.例1】选举学生会
  • (k8s中)docker netty OOM问题记录
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (九)c52学习之旅-定时器
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (一)插入排序
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .Net MVC4 上传大文件,并保存表单
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @Resource和@Autowired的区别
  • [20150321]索引空块的问题.txt
  • [20171106]配置客户端连接注意.txt
  • [AutoSar]BSW_Com02 PDU详解
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [BZOJ3211]:花神游历各国(小清新线段树)
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)