当前位置:   article > 正文

python 数据类笔试题_数据分析岗Python笔试题

数据分析python基础笔试 'csdn

我整理了数据分析师岗的Python笔试题,主要涉及到用Python完成数据处理和分析的内容。自己做了一遍,供大家学习思考。

23ea3ae00484613d6c7507d85080b5d9.png

一、数据处理题

1.将Excel工作簿 “Test.xlsx” 作为dataframe导入 Jupyter Notebook,并将dataframe命名为a. 导入后dataframe x应为如下: 输出结果

e6fa025eac2edd0ce15300667f9cd949.png

import pandasaspd

import numpy asnp

a = pd.read_excel('Test.xlsx')

f06f3c357e31477582f585f8d314f7cb.png

第1题

2.dataframe a 中, class1-class5 指总共5门课,每个学生选两门,列出期中(midterm)、期末(final)成绩(A/B/C)。请用Python语言处理表格,将class1-class5列去除,并增加 class 和 grade 两列,使新dataframe的值与原dataframe对应,并将新dataframe命名为b. 输出结果应为如下: 输出结果

f1070b0a6b49076cef5c9c6b53faba54.png

#1.先设置索引列——复合索引,用列表

#2.stack()旋转列为行,默认是旋转最内层,并且删除空值

#3.重置索引

#4.更改列名

b = a.set_index(["name","test"]).stack().reset_index()

b.columns=['name','test','class','grade']

b

用Python语言将dataframe b 的test列分成midterm和final两列,这两列的值是选的两门课的成绩。将新dataframe命名为c。输出结果应为如下: 输出结果

969577fcc37d8324a8dc8011bcfbbf8e.png

c = b.set_index(['name','class','test']).unstack()

9fbc81101edc7aa57b6b20fb96f326a3.png

第2题

4.如下为dataframe d 和 dataframe e DataFrame d and e

b0d35cdb46fab614ca94716a4e177f7f.png

请用Python语言将dataframe d 和 dataframe e 匹配, 输出结果应为如下: 输出结果

85c750cc0a38450f512f04e4044465a0.png

#水果价格信息表

d = pd.DataFrame({'水果':['apple','apple','banana','banana','orange','orange'],

'个头':['high','low']*3,

'单价':[5,3,4,2,7,5]})

#水果订单

e = pd.DataFrame({'水果':['apple','banana','orange']*2,

'个头':['high','low']*3,

'重量':np.random.randint(1,15,6)})

pd.merge(d,e,how='inner')

如下是dataframe f DataFrame f

595041962c15c7fee4fb4c967f142b54.png

请用python语言得出每节课(class)和每个年级 (grade) 下, 学生的数量和平均成绩。输出结果应为如下: 输出结果

125c599343a9423338da4dd9b902a3d1.png

f = pd.DataFrame(['Sally','David',"Jon",'Jon'],columns=['name'])

f['score']=[95,99,80,83]

f['class']=['A','A','A','B']

f['grade']=['grade 1','grade 2','grade 1','grade 2']

f

#方法一:使用groupby

f.groupby(['class','grade']).agg({'name':'count','score':'mean'})

#方二:使用pivot_table

f.pivot_table(index=['class','grade'],values=['name','score'],aggfunc={'name':'count','score':'mean'})

6.如下是dataframe h DataFrame h

b6042a7ddcd173439e98ab3c8ea9d42f.png

请用Python语言得出每行最小值除以每行最大值的商。输出结果应为如下: 输出结果

8848f4f257916b99849ae9efe7722fc1.png

np.random.seed(10)

h=pd.DataFrame(np.random.randint(1,100,80).reshape(8,-1))

min_by_max=h.min(axis=1)/h.max(axis=1)

min_by_max

7.如下是dataframe i DataFrame i

5b704e0e845531fd717f1864de5a759d.png

请用Python语言将dataframe i 里Min. Price 列中的NaN值替换成Min. Price 列的平均值, 并将 Max.Price 列中的NaN值替换成Max.Price列的中位数。输出结果应为如下(未截全): 输出结果

64fc2258ed3cd9aa52ad1dbd0333e51b.png

i=pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/Cars93_miss.csv')

i.head()

i['Min.Price'].fillna(i['Min.Price'].mean(),inplace=True)

i['Max.Price'].fillna(i['Max.Price'].median(),inplace=True)

i.isnull().sum()

【编辑推荐】

【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/204376
推荐阅读
相关标签
  

闽ICP备14008679号