菜鸟学习——记不住就回来翻翻
一、智能推荐与协同过滤 (基于用户和产品)
(下次填坑:每题新遇到的小问题总结)
目录
题4 银行客户数据整理 找用银行卡最频繁的用户及其交易月份,并画图
题6 构建数据透视表。同时,传入aggfunc参数来指定聚合方式为计算销售额总和
前两题预个热
题1 便利店商品情况分析 找销售前十
探索商品情况对销售额的影响,打算看取销售额前十的商品类别和子类别。
# 使用import导入pandas模块,简称为pd
import pandas as pd
'''读取文件'''
data = pd.read_csv("路径/store.csv",encoding='utf-8')
'''数据的处理与清洗'''
# 1. 识别并处理缺失值
quanNull = data[data["订单量"].isnull()]
data.drop(index=quanNull.index, inplace=True)
# 2. 识别并处理异常值
data = data[(data["订单量"]>0) & (data["订单量"]<100000000)]
'''商品情况分析'''
# 1. 获取销售额前十的商品类别和子类别
# 使用groupby()、sum()函数
# 计算每个商品类别下,每个子类别的销售额总和
# 将结果赋值给变量groupByCate
groupByCate=data["销售额"].groupby([data["商品类别"],data["子类别"]]).sum()
# 使用sort_values()对groupByCate进行降序排序,并赋值给sortProd
sortProd=groupByCate.sort_values(ascending=False)
#使用位置索引和切片,获取销售额前10的商品类别和子类别,并赋值给变量topTen
topTen=sortProd[0:10]
# 将结果输出
print(topTen)
题2 继续便利店 加个柱状图
接下来,想要继续分析用户情况,先找到总消费金额在前10的用户,然后计算他们各自消费金额占总销售额的比例,最后用柱状图展示结果。
# 使用import导入pandas模块,简称为pd
import pandas as pd
'''读取文件'''
data = pd.read_csv("路径/store.csv",encoding='utf-8')
'''数据的处理与清洗'''
# 1. 识别并处理缺失值
quanNull= data[data["订单量"].isnull()]
data.drop(index=quanNull.index, inplace=True)
# 2. 识别并处理异常值
data = data[(data["订单量"]>0) & (data["订单量"]<100000000)]
'''用户情况分析'''
# TODO 使用groupby()、sum()函数
# 计算每个用户的销售额总和
# 将结果赋值给变量groupByUser
groupByUser=data["销售额"].groupby(data["用户ID"]).sum()
# TODO 通过列索引,获取销售额
# TODO 使用sort_values()对groupByUser进行降序排序,并赋值给sortProd
sortProd=groupByUser.sort_values(ascending=False)
# TODO 使用位置索引和切片,获取销售额前10的用户
topten=sortProd[0:10]
# TODO 计算便利店总营业额,并赋值给变量sumTurnover
sumTurnover=data["销售额"].sum()
# TODO 计算消费金额在前10的用户各自消费金额占总销售额的比例,并赋值给变量percentage
percentage=topten/sumTurnover
# TODO 输出占比percentage
print(percentage)
# 导入matplotlib.pyplot,并使用"plt"作为该模块的简写
import matplotlib.pyplot as plt
# 通过给 plt.rcParams["font.sans-serif"] 赋值
# 将字体设置为 Arial Unicode MS
plt.rcParams["font.sans-serif"] = "Arial Unicode MS"
# TODO 使用plt.bar()函数
# 根据percentage变量,绘制柱状图
plt.bar(percentage.index, percentage.values)
# 使用plt.show()函数显示图像
plt.show()
题3 找出分数排名前三的学生
期末结束后,某系主任想获取,在主修专业课的同时还选修了艺术类课程,且全部科目总分前3的同学的信息。
她下载了两份数据,分别是计科系同学的专业课成绩和全校选修了艺术类课程的同学成绩,图中展示了部分数据内容:
我们已经完成了文件读取的操作,现在请你继续帮助系主任:
1.使用merge()
函数,按照“学号"这一列,合并required和elective将两份数据集
2.为了防止后续横向计算每位学生的总分时,将学号计算进去,所以需要先使用set_index()
函数,将"学号"这一列设置为索引;
3.使用sum()
函数,计算每个同学的总分,并将结果添加为数据中的"总分"列;
4.使用sort_values()
函数按照总分进行降序排列;
5.按照行位置访问连续的前三行数据,获取总分在前3的学生的分数信息,并输出。
# 导入pandas模块
import pandas as pd
# 读