Python快速刷题网站——牛客网 数据分析篇(十一)_牛客网python刷题步骤

"Nowcoder\_ID":[178372,989717,783650,723570,456568],
"Level":[7,1,2,6,7],
"Achievement\_value":[8711,13,130,5666,11234],
"Num\_of\_exercise":[500,3,32,433,899],
"Graduate\_year":[2017,2016,2010,2019,2017],
"Language":['CPP','Java','C','C','Python'],

})
data.value_counts()


       很明显,除非是两行数据一模一样,否则最右边统计个数只有一个,但是他也很人性化,若是遇见存在相同的数据会显示为空并放在一起,读者可以自行尝试  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f7b89b88dd304f47b9c0d7ba9163af5f.png)  
        既然如此根据题目要求,我们选取特定一列即可完成任务:



data[‘Language’].value_counts()


![在这里插入图片描述](https://img-blog.csdnimg.cn/129940683f6d48febac6dea398fa149c.png)




---



> 
> count() : For each column/row the number of non-NA/null entries.
> 
> 
> 


翻译:对于每列/行,非 NA/空条目的数量。  
        总结一下:直接用的话计算的是数量,单纯的数量!但是我们有一个分组函数`groupby()`,他们可以结合使用,于是答案就出来了。


       在此之前,我先给大家稍微说一下什么是`groupby()`函数,一个小demo可以轻松理解:



import numpy as np
import pandas as pd
data= pd.DataFrame({
“Num_of_exercise”:[500,3,32,433,899],
“Graduate_year”:[2017,2016,2010,2019,2017],
“Language”:[‘CPP’,‘Java’,‘C’,‘C’,‘Python’],
})
data[‘Language’].value_counts()
data1 = data.groupby(‘Language’)
for name,group in data1:
print (name)
print (group)


       以不通语言为一组,这就是分组后的内容,注意:groupby函数不能够直接显示具体内容,其代指<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000028EA26A2B20>,所以需要循环输出。


![在这里插入图片描述](https://img-blog.csdnimg.cn/c5c2c720f19d4cada6a0884f104d6b31.png)  
        上面说了要用`count()`和`groupby()`函数两者结合,两者结合后会发生奇妙的化学反应,反应如下,可以直接生成数据:



data.groupby(‘Language’).count()

于是我们只需要随便选一行就好了

注意,因为与输出结果略显不同,所以count()无法输出牛客网的这道题

data.groupby(‘Language’).count()[‘Nowcoder_ID’]


![在这里插入图片描述](https://img-blog.csdnimg.cn/97a69061ec7240c3bf21eaa5d2a93c1d.png)




---



> 
> size() :Return the number of rows if Series. Otherwise return the number of rows times number of columns if DataFrame.
> 
> 
> 


翻译:如果为`Series`,则返回行数。如果是 `DataFrame` 则返回列中的的行数。  
        总结一下:可以理解为在列中寻找相同的行,统计的是每条数据的条数,上面讲的`count()`函数统计的是值的个数,所以需要最后单独选一列,而`size`则不需要,代码如下:



注意,因为与输出结果略显不同,所以size()无法输出牛客网的这道题

data.groupby(‘Language’).size()


![在这里插入图片描述](https://img-blog.csdnimg.cn/150d950280c64e45b00c50d4da392b7c.png)




---


最终代码整理如下:  
 [DA12 牛客网不同语言使用人数](https://bbs.csdn.net/topics/618545628)



import pandas as pd
Nowcoder = pd.read_csv(‘Nowcoder.csv’, sep=‘,’)
print(Nowcoder.loc[:,‘Language’].value_counts())




---



> 
> 我们热爱这个世界时,才真正活在这个世界上。                           ————泰戈尔
> 
> 
> 




![img](https://img-blog.csdnimg.cn/img_convert/7fe3ab5eeaa9231f39718c1399e054e7.png)
![img](https://img-blog.csdnimg.cn/img_convert/07d9f5e519249650c735f4846f471552.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值