python第四周

自己的python作业
摘要由CSDN通过智能技术生成

代码:

import numpy as np

import pandas as pd

inputfile = '../data/GoodsOrder.csv' # 输入的数据文件

data = pd.read_csv(inputfile,encoding = 'gbk') # 读取数据

data .info() # 查看数据属性

data = data['id']

description = [data.count(),data.min(), data.max()] # 依次计算总数、最小值、最大值

description = pd.DataFrame(description, index = ['Count','Min', 'Max']).T # 将结果存入数据框

print('描述性统计结果:\n',np.round(description)) # 输出结果

# 代码8-2 分析热销商品

# 销量排行前10商品的销量及其占比

import pandas as pd

inputfile = '../data/GoodsOrder.csv' # 输入的数据文件

data = pd.read_csv(inputfile,encoding = 'gbk') # 读取数据

group = data.groupby(['Goods']).count().reset_index() # 对商品进行分类汇总

sorted=group.sort_values('id',ascending=False)

print('销量排行前10商品的销量:\n', sorted[:10]) # 排序并查看前10位热销商品

# 画条形图展示出销量排行前10商品的销量

import matplotlib.pyplot as plt

x=sorted[:10]['Goods']

y=sorted[:10]['id']

plt.figure(figsize = (8, 4)) # 设置画布大小

plt.barh(x,y)

plt.rcParams['font.sans-serif'] = 'SimHei'

plt.xlabel('销量') # 设置x轴标题

plt.ylabel('商品类别') # 设置y轴标题

plt.title('商品的销量TOP10') # 设置标题

plt.savefig('../tmp/top10.png') # 把图片以.png格式保存

plt.show() # 展示图片

# 销量排行前10商品的销量占比

data_nums = data.shape[0]

for idnex, row in sorted[:10].iterrows():

print(row['Goods'],row['id'],row['id']/data_nums)

# 代码8-3 各类别商品的销量及其占比

import pandas as pd

inputfile1 = '../data/GoodsOrder.csv'

inputfile2 = '../data/GoodsTypes.csv'

data = pd.read_csv(inputfile1,encoding = 'gbk')

types = pd.read_csv(inputfile2,encoding = 'gbk') # 读入数据

group = data.groupby(['Goods']).count().reset_index()

sort = group.sort_values('id',ascending = False).reset_index()

data_nums = data.shape[0] # 总量

del sort['index']

sort_links = pd.merge(sort,types) # 合并两个datafreame 根据type

# 根据类别求和,每个商品类别的总量,并排序

sort_link = sort_links.groupby(['Types']).sum().reset_index()

sort_link = sort_link.sort_values('id',ascending = False).reset_index()

del sort_link['index'] # 删除“index”列

# 求百分比,然后更换列名,最后输出到文件

sort_link['count'] = sort_link.apply(lambda line: line['id']/data_nums,axis=1)

sort_link.rename(columns = {'count&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值