Python数分学习笔记1 自用

本文是Python数据分析的学习笔记,涉及便利店商品销售、银行客户交易、图书推荐等多个实际问题,包括数据合并、统计分析、图表绘制、协同过滤等技术的应用。
摘要由CSDN通过智能技术生成

菜鸟学习——记不住就回来翻翻

一、智能推荐与协同过滤 (基于用户和产品)

(下次填坑:每题新遇到的小问题总结)

目录

题1 便利店商品情况分析 找销售前十

题2  继续便利店 加个柱状图

题3 找出分数排名前三的学生

题4 银行客户数据整理 找用银行卡最频繁的用户及其交易月份,并画图

题6 构建数据透视表。同时,传入aggfunc参数来指定聚合方式为计算销售额总和

题7 基于用户的协同过滤 找相似用户推荐书籍


前两题预个热

题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

# 读
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值