数据分析 | Pandas 200道练习题 进阶篇(3)
创始人
2024-01-31 21:21:12

文章目录

    • DA21 大佬用户成就值比例
    • DA22 牛客网用户最高的正确率
    • DA23 统计牛客网用户的名字长度
    • DA24 去掉信息不全的用户
    • DA25 修补缺失的用户数据
    • DA26 解决牛客网用户重复的数据
    • 总结:

在这里插入图片描述

  • ❤️ 作者简介:大家好我是小鱼干儿♛是一个热爱编程、热爱算法的大三学生,蓝桥杯国赛二等奖获得者
  • 🐟 个人主页 :https://blog.csdn.net/qq_52007481
  • 个人社区:【小鱼干爱编程】
  • 💯 刷题网站:数据分析在线练习必备网站 👉牛客网

DA21 大佬用户成就值比例

刷题网址:牛客网

在这里插入图片描述
题意分析
解题还是需要分为三步,一找出7级大佬,二计算出所有人的成就值和,三计算每个7级大佬的成就值占所有值的比例。
题解

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
big_df = df[df['Level'] == 7]
s = df['Achievement_value'].sum()
print(big_df['Achievement_value']/s)

DA22 牛客网用户最高的正确率

在这里插入图片描述
题意分析
从题目中我们能够发现需要先找出刷题数量大于10道的人,,然后分别计算每一个人的正确率,最后需要找出最高的正确率(保留3位小数)
题解

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
new_df = df[df['Num_of_exercise']>10]
z=new_df['Num_of_exercise']/new_df['Number_of_submissions']
print(z.max().round(3))

DA23 统计牛客网用户的名字长度

在这里插入图片描述
题意分析
题目就是想让计算字符串的长度
题解

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
print(df['Name'].apply(len))

相关函数

  • apply 传入的参数是一个函数,数据对象会依次调用这个函数

24-27为数据清洗的部分

DA24 去掉信息不全的用户

使用的数据仍然是Nowcoder.csv
在这里插入图片描述
题意分析
题目让我做的就是删除出现空值的行
题解1

import pandas as pd
df = pd.read_csv('Nowcoder.csv',dtype=object)
# 意因为牛客这个在线测试还不够完善,如果不设置显示宽度和行数就会报错,是一个待优化的地方。
pd.set_option('display.width', 300)  # 设置字符显示宽度
pd.set_option('display.max_rows', None)  # 设置显示最大行
pd.set_option('display.max_columns', None)
# dropna(axis=0) 删除存在空值的行
print(df.dropna(axis=0))  

题解2
使用isnull().any(axis=1)找出含有空值的行,取数据的时候筛除

import pandas as pd
df = pd.read_csv('Nowcoder.csv',dtype=object)
pd.set_option('display.width', 300)  # 设置字符显示宽度
pd.set_option('display.max_rows', None)  # 设置显示最大行
pd.set_option('display.max_columns', None)
# axis=1 等于代表对行中的数据进行判断
d = df.isnull().any(axis=1)  
print(df.loc[-d])

注意 any(axis=1)dropna(axis=0)中作用的都是行,我们平时也不能按照axis=1就是列,axis=0就代表行来理解,关于这个怎样理解pandas 中axis=1和axis=0回来会详细出一篇博客进行讲解。

DA25 修补缺失的用户数据

使用的数据仍然是Nowcoder.csv
在这里插入图片描述
题意分析
题目就是让根据条件填充空值
处理空值是我们在实际生活中经常要做的工作,关于这个处理空值的方式也有很多。
题解1
通过字典指定指定不同的列执行

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
pd.set_option('display.width', 300)  # 设置字符显示宽度
pd.set_option('display.max_rows', None)  # 设置显示最大行
pd.set_option('display.max_columns', None)
g = df['Graduate_year'].max()
a = df['Achievement_value'].mean().round(0)
dic = {"Graduate_year":g,'Language':'Python','Achievement_value': a 
}
print(df.fillna(value=dic))

题解2

import pandas as pddf = 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)
a = df["Graduate_year"].max()
df['Graduate_year'].fillna(value=a)
df['Language'].fillna('Python')
df['Achievement_value'].fillna(df['Achievement_value'].mean().round(0))
print(df)

注意这里使用的round不是python的函数是pandas中的round函数,python中的round函数并不是四舍五入,pandas中的round函数是四舍五入。

相关函数

  • fillna 的使用方法,这个设计的方式太多了,明天出一篇fillna的详解,总结几乎全部的使用方式

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

使用的数据仍然是Nowcoder.csv
在这里插入图片描述
题意分析
找出所有的重复行
将重复的行留一行,其余的删除

题解
关于这个重复的行我们使用pandas中自带的函数进行处理,其实我们也可以使用python中的方法进行解题,但是这样就绕远路了

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
print(df.duplicated())
print(df.drop_duplicates())

相关的函数

  • duplicated(subset=[],keep='first',) 判断每一行是否是重复的行,如果是重复的行返回true,否则返回false
    • subset:表示要进去重的列名,默认为 None。
    • keep:有三个可选参数,分别是 first、last、False,默认为 first,表示只有第一次出现的重复项返回 False,其余返回True,last 表示将最后一次出现的行返回False,其余重复的行返回True,False 表示重复的行都返回True
  • df.drop_duplicates(subset=[],keep='first',inplace=True)
    • subset:表示要进去重的列名,默认为 None。
    • keep:有三个可选参数,分别是 first、last、False,默认为 first,表示只保留第一次出现的重复项,删除其余重复项,last 表示只保留最后一次出现的重复项,False 则表示删除所有重复项。
    • inplace:布尔值参数,同其他函数一样,默认Flase不修改原数据,设置为True修改原数据

刷题网址:牛客网

总结:

本章仍然讲解一些常用的函数,保留指定小数位round(3),删除空值dropna,填充空值fillna,判断重复的行duplicated(),删除重复的行drop_duplicates(), 后面几个函数常用于数据清洗,数据清洗是数据分析之前一个必要的工作,清洗的好坏也影响后面数据的分析、数据建模

在这里插入图片描述

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
每逢佳节倍思亲的意思 每逢佳节... 朴素,是诗歌语言众多风格之一。所谓“朴素”,即通过简洁、准确的语言传达作者真挚、美好的情感。如李白的...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...