【译】技能测试解决方案:Python中的数据科学(一)

虚拟货币
• 阅读 3272

本文是译文,可以转载,但需注明出处,点击这里可以获取原文,有删减。
本系列博文包含四篇文章:
【译】技能测试解决方案:Python中的数据科学(一)——Q1-Q15
【译】技能测试解决方案:Python中的数据科学(二)——Q16-Q30
【译】技能测试解决方案:Python中的数据科学(三)——Q31-Q45
【译】技能测试解决方案:Python中的数据科学(四)——A1-A45及其解释
简介:
Python在数据科学界正在迅速发展。 我们越来越倾向于使用这样的生态系统——数据科学家对多种工具感到舒适,并根据特殊情况和堆栈使用正确的工具。
如果你打算把Python作为数据科学的首选工具,或正在学习它,那这是检查你技能的绝好机会。
技能测试问题
Q1
【译】技能测试解决方案:Python中的数据科学(一)

上述数据集包含分类型和连续型变量,每个数据科学家都应该明白处理两者的方法不大一样。
下列代码中,哪一项能计算出数据集中分类型变量的个数?

A - (train.dtype == 'object').sum()
B - (train.dtypes == object).sum()
C - (train.dtypes == object).count()
D – 以上选项都不能

Q2
【译】技能测试解决方案:Python中的数据科学(一)

上述数据集中有多个分类型变量,每一个分类型变量都有多个分类值。如,“Married” 变量就有两个分类值———— “Yes” and “No”。
下列代码中,哪一项能计算出“Education”变量的不同分类值?

A - train.Education.individuals()
B - train.Education.distinct()
C - train.Education.unique()
D – 以上选项都不能

Q3
【译】技能测试解决方案:Python中的数据科学(一)

我们发现,上述数据集中,“LoanAmount”变量有许多缺失值。
下列代码中,哪一项能统计出“LoanAmount”变量的缺失值数量?

A - train.count().maximum() - train.LoanAmount.count()
B - (train.LoanAmount == NaN).sum()
C - (train.isnull().sum()).LoanAmount
D – 以上选项都能

Q4
【译】技能测试解决方案:Python中的数据科学(一)

上述数据集中,“Credit_History”变量也有很多缺失值,我们首先需要分析“Credit_History”变量非空的用户群。
我们创建一个叫 “new_dataframe”的数据框,该数据框包含“train”数据框中“Credit_History”变量非空的样本。
下列哪行代码可以实现这个需求:

A - new_dataframe = train[~train.Credit_History.isnull()]
B - new_dataframe = train[train.Credit_History.isna()]
C - new_dataframe = train[train.Credit_History.is_na()]
D – 以上选项都不能

Q5
【译】技能测试解决方案:Python中的数据科学(一)

在上述数据集中,我们发现 Loan_id = LP001005的样本含有较少的信息(如:大多数变量都为空)。建模过程中,这类样本会产生较大的噪音,因此,建议过滤掉这类样本。
如果一个样本中5个变量值为空,我们决定剔除它们,并把剩余的数据集存放在一个叫“temp”的数据框中。
下列哪行代码可以实现这个需求:

A - temp = train.dropna(axis=0, how='any', thresh=5)
B - temp = train.dropna(axis=0, how='all', thresh=5)
C - temp = train.dropna(axis=0, how='any', thresh=train.shape[1] - 5)
D – 以上选项都不能

Q6
【译】技能测试解决方案:Python中的数据科学(一)

接下来,我们进行数据切片操作。第一个合理的操作是使数据满足建模需求。在上述数据中,我们发现, “Property_Area” 变量含有较少的“Semiurban”值。因此,我们决定把 “Semiurban” 和 “Urban”合并成一个新的类,并把这个类命名为“City”类,除此之外,我们还把“Rural” 重命名为 “Village”。
下列哪行代码可以实现这个需求:

A - >>> turn_dict = ['Urban': 'City', 'Semiurban': 'City', 'Rural': 'Village']
    >>> train.loc[:, 'Property_Area'] = train.Property_Area.replace(turn_dict)
B - >>> turn_dict = {'Urban': 'City', 'Semiurban': 'City', 'Rural': 'Village'}
    >>> train.loc[:, 'Property_Area'] = train.Property_Area.replace(turn_dict)
C - >>> turn_dict = {'Urban, Semiurban': 'City', 'Rural': 'Village'}
    >>> train.iloc[:, 'Property_Area'] = train.Property_Area.update(turn_dict)
D – 以上选项都不能 

Q7
【译】技能测试解决方案:Python中的数据科学(一)

到目前为止,你离建立第一个模型又进了一步。也许你会发现一些比较有趣的事情:“Gender”变量取值为“Male”且“Married”变量取值为“Yes”的用户占比较高。
下列哪行代码可以检验这个假设?

A - (train.loc[(train.Gender == 'male') && (train.Married == 'yes')].shape[1] / float(train.shape[0]))*100
B - (train.loc[(train.Gender == 'Male') & (train.Married == 'Yes')].shape[1] / float(train.shape[0]))*100
C - (train.loc[(train.Gender == 'male') and (train.Married == 'yes')].shape[0] / float(train.shape[0]))*100
D – 以上选项都不能 

Q8
【译】技能测试解决方案:Python中的数据科学(一)

上述数据是训练集和测试集,注意到两个集合的变量并不匹配,如:训练集中有些字段并不在测试集中,反之亦然。
假设两个集合均已“数据框”的形式入库,下列哪行代码可以找出测试集存在但是训练集不存在的变量:

A - set(test.columns).difference(set(train.columns))
B - set(test.columns.tolist()) - set(train.columns.tolist())
C - set(train.columns.tolist()).difference(set(test.columns.tolist()))
D – 以上选项都不能 

Q9
【译】技能测试解决方案:Python中的数据科学(一)

或许你会注意到,Python中绝大多数机器学习库及相应的算法都要求数据以数字的方式呈现。
因此,我们需要对“Gender”变量进行转换,如:M转换成1,F转换成0。
下列哪行代码可以实现这个需求?

A - train.ix[:, 'Gender'] = train.Gender.applymap({'M':1,'F':0}).astype(int)
B - train.ix[:, 'Gender'] = train.Gender.map({'M':1,'F':0}).astype(int)
C - train.ix[:, 'Gender'] = train.Gender.apply({'M':1,'F':0}).astype(int)
D – 以上选项都不能 

Q10
【译】技能测试解决方案:Python中的数据科学(一)
在上述数据集中,“Product_ID”一栏数据包含已售产品的唯一标识。可能出现这种情况:一些产品出现在测试集但是不出现在训练集中,这给建模造成一定的难度,因为对于新产品而言,没有它的“历史”信息。
下列哪行代码可以验证测试集中的“Product_ID”是训练集的子集?

A - train.Product_ID.unique().contains(test.Product_ID.unique())
B - set(test.Product_ID.unique()).issubset(set(train.Product_ID.unique()))
C - train.Product_ID.unique() = test.Product_ID.unique()
D – 以上选项都不能 

Q11
【译】技能测试解决方案:Python中的数据科学(一)

上述数据中,“Age” 变量是一个分类型变量,把它转换成一个数值型变量或许更有意义。
下列哪行代码可以实现把“Age” 变量的组平均值代替原始值。如:以8.5和21代替0-17和17-25?

A - train['Age'] = train.Age.apply(lambda x: (np.array(x.split('-'), dtype=int).sum()) / x.shape)
B - train['Age'] = train.Age.apply(lambda x: np.array(x.split('-'), dtype=int).mean())
C – A和B都可以
D – 以上选项都不能 

Q12
【译】技能测试解决方案:Python中的数据科学(一)

实际数据中,有一种情景是,数值型变量的值隐藏在某一个字符型变量中,建模前,我们必须清洗此类变量。
例如:上述数据集中,“Ticket”变量包含一个或者两个模块,现假设我们所需数值始终存在该变量的最后一个模块中。
下列哪行代码可以实现这个需求?

A - train.Ticket.str.split(' ').str[0]
B - train.Ticket.str.split(' ').str[-1]
C - train.Ticket.str.split(' ')
D – 以上选项都不能 

Q13
【译】技能测试解决方案:Python中的数据科学(一)

或许你已注意到,上述数据集是著名的泰坦尼克号数据集。该数据有很多缺失值,处理缺失值的一种方法是用“已知值”填充。
我们决定对 “Age”变量进行如下填充:用同性别的“Age”的平均值填充,下列哪行代码可以实现这个需求?

A - train = train.groupby('Sex').transform(lambda x: x.fillna(x.sum()))
B - train['Age'] = train.groupby('Sex').transform(lambda x: x.fillna(x.mean())).Age
C - train['Age'] = train.groupby('Sex').replace(lambda x: x.fillna(x.mean())).Age
D – 以上选项都不能 

Q14
【译】技能测试解决方案:Python中的数据科学(一)

接下来,我们想知道乘客的位置是怎样影响乘客的生存概率的,一个假设是,“S” (S=SouthHampton)的乘客,尤其是女性乘客,在这次事故中生存概率会非常高。
问题是,怎样计算来自“S”的女性乘客数量?

A - train.loc[(train.Embarked == 'S') and (train.Sex == 'female')].shape[0]
B - train.loc[(train.Embarked == 'S') & (train.Sex == 'female')].shape[0]
C - train.loc[(train.Embarked == 'S') && (train.Sex == 'female')].shape[0]
D – 以上选项都不能 

Q15
【译】技能测试解决方案:Python中的数据科学(一)
仔细观察“Name”变量,貌似每个“Name”都含有一个头衔,例如:“Braund, Mr. Owen Harris”含有“Mr.”头衔。
下列哪行代码可以统计出乘客姓名中含有“Mr.”头衔的数量?

A - (train.Name.str.find('Mr.')==False).sum()
B - (train.Name.str.find('Mr.')>0).sum()
C - (train.Name.str.find('Mr.')=0).sum()
D – 以上选项都不能 

友情链接:
【译】技能测试解决方案:Python中的数据科学(二)——Q16-Q30
【译】技能测试解决方案:Python中的数据科学(三)——Q31-Q45
【译】技能测试解决方案:Python中的数据科学(四)——A1-A45及其解释

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
3年前
vue 如何将输入框的输入自动小写转大写(使用 v
前言:小写转大写,可以用过滤器实现,但当使用vmodel时就不行了,这里有解决方案。转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9289205.html网站地址:我的个人vueelementuidemo网站(https://www.oschina.net/action/GoToLink
Stella981 Stella981
3年前
DevOps驱动的人保微服务平台建设之路
!(https://oscimg.oschina.net/oscnet/474d4e666873443fbccd4f77b462e4df.jpg)转载本文需注明出处:微信公众号EAWorld,违者必究。引言:2018年
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Re:从零开始的鸿蒙开发教程
!(https://oscimg.oschina.net/oscnet/31d15e1c25804ce687c1cbc5879c70d7.jpg)转载本文需注明出处:微信公众号EAWorld,违者必究。概述官网说:HarmonyOS是一款“面向未来”、面向全场景(移动办公、运
Stella981 Stella981
3年前
Flutter学习笔记(40)
如需转载,请注明出处:Flutter学习笔记(40)Timer实现短信验证码获取60s倒计时(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2Fupwgh%2Fp%2F13261089.html)
Stella981 Stella981
3年前
Service Mesh框架对比:Linkerd vs. Istio
!(https://oscimg.oschina.net/oscnet/7cbad0aec3c14340a6ba1b2f5513cbcb.jpg)本文由公众号EAWorld翻译发表,转载需注明出处。作者:MarcusSchiesser译者:白小白原题:ComparingServiceMeshes:Lin
Stella981 Stella981
3年前
DevOps之代码模块设计浅析
!(https://mmbiz.qpic.cn/mmbiz_png/icQbWvrFMeJUotyUg0hsVicicv4GSoWP9libL6GTgsqWIaobfxxXR7HUjJNPyNy4IJsqiaGODPdVV1IsDDtaSWib0FcQ/640?wx_fmtpng)​转载本文需注明出处:微信公众号EAWorld,违者必究。
Stella981 Stella981
3年前
Python探索性数据分析,这样才容易掌握
作者:RitiDass译者:LJY整理:Lemonbit译文出品:Python数据之道「Python数据之道」导语理解你的数据的最佳方法是花时间去研究它。Python探索性数据分析教程介绍每个数据科学家都必须掌握的最重要的技能之一是
Stella981 Stella981
3年前
DevOps产品中的企业项目群模式
!(https://oscimg.oschina.net/oscnet/239785b778cd4e40b6de968c265188e1.jpg)转载本文需注明出处:微信公众号EAWorld,违者必究。引言:项目群,是项目管理中的一个重要概念,一般上规模的公司,都有可能多个项目组成一个项目群并行进行。
Stella981 Stella981
3年前
C++笔记002:VS2010报错:LINK fatal error LNK1123 转换到 COFF 期间失败文件无效或损坏
 原创笔记,转载请注明出处!点击【关注】,关注也是一种美德~错误描述:1已启动生成:项目:FirstCode,配置:DebugWin321生成启动时间为2018/2/521:00:30。1InitializeBuildStatus:1 正在