2021某厂的数据分析面试题python

今天来更新朋友面试某厂的数据分析题,供大家参考。

面试官给了一个python笔试题.py文件
内容如下:
在这里插入图片描述

Q1:读入数据

 # Q1: 读入数据,到一个dataframe命名为content,并且将其中的列名作为dataframe的column index
import pandas as pd
content=pd.DataFrame(raw_data,columns=["platform","order_num","comment","uv"])
content.info()

结果如下:
在这里插入图片描述

Q2:筛选数据

这里我要说一下,筛选数据最好用df.query()这个函数,效率高,容易理解

# Q2: 筛选所有order_num = '2nd' 且platform = 'news'
qstr1="order_num == \'2nd\'"
qstr2="platform == \'news\' & order_num == \'2nd\'"
print(content.query(qstr2))

结果如下:
在这里插入图片描述

Q3:筛选数据

#Q3:筛选content的第2-4行和第2列之后的数据
content.iloc[1:4,2:]

结果如下:
在这里插入图片描述

Q4:分组

# Q4: 对content进行分组计算,按照platform 和order_num 对comment 求和 并按照求和结果进行降序排列
data1=content.groupby(["platform","order_num"])["comment"].sum().sort_values(ascending=False)
data1

结果如下:
在这里插入图片描述

Q5:数据赋值

这道题大家的思想可能也是判断platform='news’和 comment >= 70,然后再and,这样写也行,但是可能会有类型错误,如不是bool类型之类的,博主的想法是求出满足表达式的行的索引,然后根据索引赋值即可

# Q5: 新生成一列变量为 rank,评价标准为,当platform='news'且 comment >= 70时 rank = 'good', 当platform='pcnews'且 comment >= 500时 rank = 'medium', 其他 rank = 'worse'
#全体赋值为worse
content["rank"]="worse"
#满足第一个条件表达式
qustr1="platform==\'news\' and comment >= 70"
list1=content.query(qustr1).index.tolist()
content.loc[list1,"rank"]="good"
#满足第二个条件的表达式
qustr2="platform==\'pcnews\' and comment >= 500"
list2=content.query(qustr2).index.tolist()
content.loc[list2,"rank"]="medium"
#展示赋值后的结果
print(content)

结果如下:在这里插入图片描述

总结

总结一下,题目主要考察pandas,对做题时间有限制,其实还是有点难度的,尤其是需要知道一些高级的pandas查询方法,平时还是需要多敲一敲!

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳小葱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值