• 【python数据分析刷题】-N05.数据清洗



    活动地址:CSDN21天学习挑战赛

    在这里插入图片描述

    📢📢📢📣📣📣
    哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
    一位上进心十足的【大数据领域博主】!😜😜😜
    中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
    擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
    ✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
    ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

    前言

    Python实际针对数据分析的学习是库,用库来解决一系列的数据分析问题

    🐴 DA24 去掉信息不全的用户

    🚀 描述

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

    📖 输入描述
    数据集直接从当前目录下的Nowcoder.csv文件中读取。

    在这里插入图片描述
    📖 输出描述:
    直接输出清洗后的全部数据。

    在这里插入图片描述
    🍌🍌 答案

    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[Nowcoder.isna() == False])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    🐴 DA25 修补缺失的用户数据

    🚀 描述

    现有一个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”)。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    📖 输入描述
    数据集直接从当前目录下的Nowcoder.csv文件中读取。

    在这里插入图片描述
    📖 输出描述:
    输出修改后的全部数据,不用处理输出时年份与成就值的小数点问题。

    在这里插入图片描述
    🍌🍌 答案

    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)
    Nowcoder["Graduate_year"].fillna(Nowcoder["Graduate_year"].max())
    Nowcoder["Language"].fillna("Python")
    Nowcoder["Achievement_value"].fillna(Nowcoder["Achievement_value"].mean().round(0))
    print(Nowcoder)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    🐴 DA26 解决牛客网用户重复的数据

    🚀 描述

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

    📖 输入描述
    数据集直接从当前目录下的Nowcoder.csv文件中读取。
    在这里插入图片描述
    📖 输出描述
    先输出每一行是否重复,再输出去重后的文件全部数据

    🍌🍌 答案

    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())
    print(Nowcoder.drop_duplicates(0))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    🐴 DA27 统一最后刷题日期的格式

    🚀 描述

    现有一个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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    📖 输入描述
    数据集直接从当前目录下的Nowcoder.csv文件中读取。
    在这里插入图片描述
    📖 输出描述
    输出用户ID、等级与最后提交日期三列,包括行号。
    在这里插入图片描述

    🍌🍌 答案

    import pandas as pd
    Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
    Nowcoder['Last_submission_time'] = pd.to_datetime(Nowcoder["Last_submission_time"],format="%Y-%m-%d")
    print(Nowcoder[['Nowcoder_ID','Level','Last_submission_time']])
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    🐴 DA28 将用户的json文件转换为表格形式

    🚀 描述

    现有一个Nowcoder.json文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
    Nowcoder_ID:用户ID
    Level:等级
    Achievement_value:成就值
    Graduate_year:毕业年份
    Language:常用语言
    如果你读入了这个json文件,能将其转换为pandas的DataFrame格式吗?
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    📖 输入描述:
    数据集直接从当前目录下的Nowcoder.json文件中读取。
    在这里插入图片描述
    📖 输出描述:
    输出转换为DataFrame的全部数据,包括行号。
    在这里插入图片描述
    🍌🍌 答案

    import pandas as pd
    import json
    
    pd.set_option('display.width', 300)  # 设置字符显示宽度
    pd.set_option('display.max_rows', None)  # 设置显示最大行
    pd.set_option('display.max_columns', None)
    with open('Nowcoder.json', 'r') as f:
        data = json.loads(f.read())
         
        df = pd.DataFrame.from_dict(data)
        print(df)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    小蚂蚁过河
    【Git】配置SSH密钥实现Git操作免密
    记一次beego通过go get命令后找不到bee.exe的坑
    C#.NET Framework RSA 公钥加密 私钥解密 ver:20230609
    一个AI玩遍多个游戏
    Async await的使用,调用axios后,等待axios执行完毕再继续往下执行
    计算机毕业设计(附源码)python-重庆工程学校学生体测监测系统-微信小程序
    【云原生&微服务十】SpringCloud之OpenFeign实现服务间请求头数据传递(OpenFeign拦截器RequestInterceptor的使用)
    SpringWeb解析
    PHP:类型运算符
  • 原文地址:https://blog.csdn.net/weixin_41645135/article/details/126239735