数据分析 | Pandas 200道练习题 进阶篇(2)

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

文章目录

  • 内置函数
    • DA12 牛客网不同语言使用人数
    • DA13 牛客网用户最近的最长与最短连续签到天数
    • DA14 Python用户的平均提交次数
    • DA15 牛客网用户等级的中位数
    • DA16 用户常用语言有多少
    • DA17 牛客网最多的用户等级
    • DA18 用分位数分析牛客网用户活动
    • DA19 牛客网大佬之间的差距
    • DA20 牛客用户刷题量的方差与提交次数的标准差
    • 总结

数据分析 | Pandas 200道练习题 进阶篇(2)_第1张图片

内置函数

刷题网址:牛客网

DA12 牛客网不同语言使用人数

数据分析 | Pandas 200道练习题 进阶篇(2)_第2张图片
题意分析
题目主要就是分别统计每中语言出现的次数

题解
直接统计不同值得个数

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
print(df['Language'].value_counts())

先根据Language的值进行分组,然后分别统计每组的数量
注意这个在在牛客中不能通过,因为取得列值不一样,但是能实现这个结果

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
print(df.groupby('Language').count()['Level'].sort_values(ascending=False))

DA13 牛客网用户最近的最长与最短连续签到天数

数据分析 | Pandas 200道练习题 进阶篇(2)_第3张图片

题意分析:

找最大值和最小值

题解:

import pandas as pd
df = pd.read_csv("Nowcoder.csv")

print(df['Continuous_check_in_days'].max())
print(df['Continuous_check_in_days'].min())

DA14 Python用户的平均提交次数

数据分析 | Pandas 200道练习题 进阶篇(2)_第4张图片
题意分析
找到使用python语言得人然后求他得平均提交次数

题解

import pandas as pd
df = pd.read_csv("Nowcoder.csv")
# 找出使用语言为Python的人
pydf =df[df['Language'] == 'Python']
# 求平均值和保留小数位数
# 使用round保留小数
print(pydf['Number_of_submissions'].mean().round(1))
# 使用format保留小数
print(format(pydf['Number_of_submissions'].mean(), '.1f'))

相关函数
mean() 求平均值
round(n) 保留n位小数,注意不是四舍五入,它有自己的规则,看我这篇博客
format() 格式化字符串,可以对数字进行四舍五入

DA15 牛客网用户等级的中位数

数据分析 | Pandas 200道练习题 进阶篇(2)_第5张图片

题意分析

题目里面有两个要求,一个是排除刷题数量少于10道的人,另一个就是求等级的中位数

题解:

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
# 筛选出刷题数量大于10的人
new_df = df[df['Num_of_exercise'] >= 10]
# 计算中位数,并取整
print(int(new_df['Level'].median()))

相关函数:
median() 取中位数

DA16 用户常用语言有多少

数据分析 | Pandas 200道练习题 进阶篇(2)_第6张图片
题意分析
找出语言这一列拥有不同值得数量,以及由有哪些内容

题解

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
print(df['Language'].nunique())
print(df['Language'].unique())

相关函数
nunique() 返回不同值得个数
unique() 返回不同值,返回得数据类型是array

DA17 牛客网最多的用户等级

数据分析 | Pandas 200道练习题 进阶篇(2)_第7张图片
题意分析
找出最多得用户等级,其实就是找出等级这一列得中位数,或者说找出出现次数最高得一列
题解:

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
# 注意它的输出格式,仍然是DataFrame对象
# 方式1
print(df[['Level']].mode()) 
# 方式2 使用iloc取所有行和第二列
print(df.iloc[:,[1]].mode())

# 注意后面这俩能找到出现次数最多的值,但是不符合题意
print(df[['Level']].value_counts().index[0]) 
print(df['Level'].mode()) 

DA18 用分位数分析牛客网用户活动

数据分析 | Pandas 200道练习题 进阶篇(2)_第8张图片
题意理解:
题目的意思就是让我们找不同列的分位数

题解:
使用quantile解题

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
print(df[['Achievement_value','Continuous_check_in_days']].quantile(0.25))
print(df[['Num_of_exercise','Number_of_submissions']].quantile(0.75))

使用describe解题

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
print(df[['Achievement_value','Continuous_check_in_days']].describe().loc['25%'])
print(df[['Num_of_exercise','Number_of_submissions']].describe().loc['75%'])

相关函数
quantile 计算分位数
describe 查看一些基本的统计信息

DA19 牛客网大佬之间的差距

数据分析 | Pandas 200道练习题 进阶篇(2)_第9张图片
题意分析
首先找出7级用户,然后计算7级用户之间的差

题解

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
df_7 = df[df['Level'] == 7]
print(df_7['Achievement_value'].max() - df_7['Achievement_value'].min())

相关函数
max 最大值
min 最小值

DA20 牛客用户刷题量的方差与提交次数的标准差

使用的文件同上
数据分析 | Pandas 200道练习题 进阶篇(2)_第10张图片
题意分析
求解方差以及标准差
题解

import pandas as pd
df = pd.read_csv('Nowcoder.csv')
print(format(df['Num_of_exercise'].var(),'.2f'))
print(format(df['Num_of_exercise'].std(),'.2f'))

相关函数
.var() 求方差
.std() 求标准差

总结

本章9道试题使用了一些Pandas常见的函数进行解题,统计一列中不同值得内容和出现得次数,最大值,最小值,平均值,方差,标准差,中位数,众数,分位数等

直达牛客,尽情刷题

数据分析 | Pandas 200道练习题 进阶篇(2)_第11张图片

你可能感兴趣的:(数据分析,python,数据分析,pandas)