• 【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

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    WPF真入门教程30--顺风物流单据管理系统
    Windows下将文件夹映射为磁盘
    034-第三代软件开发-自定义Slider(一)
    文本攻击textattack->openattack
    python经典百题之一个素数能被几个9整除
    CUDA学习笔记0924
    WeNet:面向工业落地的E2E语音识别工具
    【RabbitMQ】【Docker】基于docker-compose构建rabbitmq容器
    小程序商城免费搭建之java商城 电子商务Spring Cloud+Spring Boot+二次开发+mybatis+MQ+VR全景+b2b2c
    [iOS开发]frame和bounds
  • 原文地址:https://blog.csdn.net/weixin_41645135/article/details/126239735