牛客网数据挖掘入门题目pandas总结(二)(9-23)

本文先总结‘逻辑运算’、‘中级函数’两部分题目,即DA9-DA23.

总结(一)牛客网数据挖掘入门题目pandas总结_阿大的回答的博客-CSDN博客

Nowcoder.csv预览

9.如果你想知道哪些人是2020年毕业的,并且最常使用的语言是Java的,请输出他们的全部信息。

import pandas as pd
data=pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
print(data[(data['Language']=='Java')&(data['Graduate_year']=='2020')])
#两个判断条件需要分别用()括起来,再&并起来,最终写成data[条件],即data[(条件1)&(条件2)]

9.输出:

9-2.现在运营同学想要你帮忙统计一下使用CPP、C、C#的用户的全部信息,请你帮他输出一下。

print(data.query("Language in ('CPP', 'C', 'C#')"))
#data.query(expr),expr:str类型,表示筛选条件的表达式,可以包含变量和运算符。
#看到别人用print(data[data['Language'].isin(['CPP','C','C#'])])也行
#data.isin()函数用于判断数据是否在指定的序列中,返回一个布尔值的DataFrame。

9-2.输出:

10.正在刷题的小白想知道牛客网刷题数量不低于500题的大佬,他们的等级和成就值是怎么样的,你能帮助他吗?

print(data[data['Num_of_exercise']>499][['Level', 'Achievement_value']])
#最后的中括号要两重[[xx,xx]],一重的是iloc、loc用法,如下
print(data.loc[data['Num_of_exercise'] > 500, ['Level', 'Achievement_value']])

10.输出: 

 

 11.假设2018年毕业的你突发奇想,想要知道牛客网有哪些使用CPP的7级用户,且他们的毕业年份和你不是同年的,请问该怎么筛选?

print(data[(data['Language']=='CPP')& (data['Level']==7)& (data['Graduate_year']!=2018)])
#不等于用!=表示

11.输出:

12.刚刚发现牛客网想要学习编程的小白,不知道优先学习什么语言,刷什么题单,你能帮助他从这个csv文件中找到牛客网各种语言使用的用户分别有多少吗?

print(data['Language'].value_counts())

12.输出:

13.运营同学想要统计牛客网的用户的最近的连续签到情况,他想知道最长的用户已经连续签到了多久,最短的用户又连续签到了多久,请帮他输出一下。

print(max(data['Continuous_check_in_days']))
print(min(data['Continuous_check_in_days']))

13输出:两个数字

14.打算学习Python的小白同学打开了牛客网,他想知道Python到底难不难,于是他想从牛客网Python用户都平均提交了多少次代码来认识,请你帮他找一找。

print(round(data[data['Language']=='Python']['Number_of_submissions'].mean(),1))
#平均用data.mean(),取小数后一位,四舍五入用round(xx,1)

14.输出:一位小数

15.牛客网运营同学有一个活动,需要统计所有用户等级的中位数,但是为了去掉一些非常不活跃的账号,于是他们只统计刷题数量不低于10题的那部分用户。

data1=data[data['Num_of_exercise']>=10]
print(int(data1['Level'].median()))

16.你想知道这个文件中记录了多少种常用语言,一并输出这些语言的名字。

# nunique可以直接统计不同值的个数
# unique()方法返回的是去重之后的不同值
print(data['Language'].nunique())
print(data['Language'].unique())

16.输出:

17.对于牛客网的等级制度,你很感兴趣,你想知道大部分人都在什么等级,你能找到文件中等级的众数吗?

print(pd.DataFrame(data['Level'].mode())) 
#加个dataframe(),多个标题Level 不然没有

17.输出:

18.现要分析牛客网用户的活跃情况,请依次输出用户成就值与最近连续签到天数的四分之一分位数以及刷题量与代码提交次数的四分之三分位数。

print(data[['Achievement_value','Continuous_check_in_days']].quantile(0.25))
print(data[['Num_of_exercise','Number_of_submissions']].quantile(0.75))

18.输出:

19.牛客网有很多7级红名大佬,这是众所周知的,但是小白想知道这些大佬的成就值之间有没有什么不同,于是他想从这份文件中输出7级用户中最高成就值与最低成就值之差。

data1=data[data['Level']==7]
print((data1['Achievement_value']).max()-(data1['Achievement_value']).min())

20.假如牛牛正在统计用户的刷题情况,需要知道用户刷题量的方差以及提交代码次数的标准差,你能够帮助他吗?

print(round(data['Num_of_exercise'].var(),2))
print(round(data['Number_of_submissions'].std()),2)

21.牛客网有很多7级红名大佬这是众所周知的,小白希望知道这些大佬的成就值各自占据了所有人成就值总和的百分之多少,你能帮他吗?

print(data[data['Level']==7]['Achievement_value']/data['Achievement_value'].sum())

21.输出:0.7xxxx

22.牛客网有那么多刷题的用户,有的人身经百战,刷题无数但是反复提交了多次错误的代码debug之后才能通过,牛牛想知道牛客网最高的正确率能有多少,为了公平起见,他决定只统计刷题数量大于10题的用户,请你帮帮他。

data1=data[data['Num_of_exercise']>10]
print((data1['Num_of_exercise']/data1['Number_of_submissions']).round(3).max())

23.运营小周同学想要统计这些用户的名字长度,你可以帮助她吗?

print((data.loc[:,'Name']).str.len())

23.输出:

部分函数汇总:

#对某列data['xx']:
#中位数用data['xx'].median()
#众数用data['xx'].mode()
#最大最小值用data['xx'].max(),data['xx'].min()
#平均数用data['xx'].mean()
#输出不同值用data['xx'].unique()
#输出不同值个数用data['xx'].nique()
#0.25分位数用data['xx'].quantile(0.25)
#data.tile(5)为取最后5行数据
#方差data['xx'].var()
#标准差data['xx'].std()

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值