一个帅气的boy,你可以叫我Love And Program
?个人主页:Love And Program的个人主页
如果对你有帮助的话希望三连支持一下博主
文章图片
python是目前非常火爆的语言,其在人工智能、数据分析领域都占有一席之地,无论是学习还是工作,都会给你带来相当大的帮助。我在这给大家 推荐一个快速提升自己的网站 牛客网,他们现在的IT题库内容很丰富,属于国内做的很好的了,可以在下图中看见里面试题应有尽有,最最最重要的里面的资源全部免费!!!(亲测全免费,写题解还可以得小礼物)前言
文章图片
欢迎大家订阅本专栏进行自助练习 系列专栏链接:
Python快速刷题网站——牛客网 数据分析篇专栏
逻辑运算 部分已经完结,相信大家对于csv、excel文件基本的查找操作已经熟练掌握了,接下来我们要学习的是 中级函数 部分,得,又需要记新的函数了,但是你要知道,Python作为你最值得信赖的工具,它是不会为难你的,总结起来就是好记,很好记,非常t喵d好记。不同语言使用人数 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
刚刚发现牛客网想要学习编程的小白,不知道优先学习什么语言,刷什么题单,你能帮助他从这个csv文件中找到牛客网各种语言使用的用户分别有多少吗?
文章图片
输出该数据集中满足筛选条件的全部信息,包括列号。
文章图片
- 读题找出重点:找出语言种类
- 接下来我们学习三个将要用到的函数,分别是:
value_counts()
、size()
、count()
value_counts():The returned Series will have a MultiIndex with one level per input column. By default, rows that contain any NA values are omitted from the result. By default, the resulting Series will be in descending翻译过来是:返回的序列将具有一个多索引,每个输入列有一个级别。默认情况下,包含任何 NA 值的行将从结果中省略。默认情况下,生成的序列将降序排列顺序,因此第一个元素是最常出现的行。
order so that the first element is the most frequently-occurring row.
总结一下:计算每列重复值个数,但是这个列取决于你用的数据,选取多列按一列计算,代码如下:
import numpy as np
import pandas as pddata= https://www.it610.com/article/pd.DataFrame({"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()
很明显,除非是两行数据一模一样,否则最右边统计个数只有一个,但是他也很人性化,若是遇见存在相同的数据会显示为空并放在一起,读者可以自行尝试
文章图片
既然如此根据题目要求,我们选取特定一列即可完成任务:
data['Language'].value_counts()
文章图片
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= https://www.it610.com/article/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)
【牛客|Python快速刷题网站——牛客网 数据分析篇(十一)】以不通语言为一组,这就是分组后的内容,注意:groupby函数不能够直接显示具体内容,其代指,所以需要循环输出。
文章图片
上面说了要用
count()
和groupby()
函数两者结合,两者结合后会发生奇妙的化学反应,反应如下,可以直接生成数据:data.groupby('Language').count()
# 于是我们只需要随便选一行就好了
# 注意,因为与输出结果略显不同,所以count()无法输出牛客网的这道题
data.groupby('Language').count()['Nowcoder_ID']
文章图片
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()
文章图片
最终代码整理如下:
DA12 牛客网不同语言使用人数
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(Nowcoder.loc[:,'Language'].value_counts())
我们热爱这个世界时,才真正活在这个世界上。————泰戈尔
推荐阅读
- 机器学习|分布式机器学习---数据与模型划分
- 废掉小脑阔的错误|上采样、下采样区别及作用
- C#|多次握手登录
- 树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
- 节日专属合集|【中秋系列】火遍Python的中秋节贺卡,现在学还不晚!
- UI自动化|UI自动化简介
- 压力测试|【测试基础】jmeter工具介绍及使用方法
- 阿里灵杰融合智能算力,全栈AI服务为探索者铺路
- sklearn|sklearn中的数据预处理