商品数据分析,消费金额与小费之间的关联以及性别和吸烟与否的关系和电影前250分析统计的案例

 文件名称: doc/chipo.csv
文件描述: 每列数据分别代表如下: 订单编号, 订单数量, 商品名称, 商品详细选择项, 商品总价格
需求1:
    1). 从文件中读取所有的数据;
    2). 获取数据中所有的商品名称;
    3). 跟据商品的价格进行排序, 降序,
    将价格最高的20件产品信息写入mosthighPrice.xlsx文件中;

需求2:
    1). 统计列[item_name]中每种商品出现的频率,绘制柱状图
            (购买次数最多的商品排名-绘制前5条记录)
    2). 根据列 [odrder_id] 分组,求出每个订单花费的总金额。
    3). 根据每笔订单的总金额和其商品的总数量画出散点图。


"""

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt


#
# # 需求1:
# #     1). 从文件中读取所有的数据;
# #     2). 获取数据中所有的商品名称;
goodsInfo = pd.read_csv('doc/chipo.csv')
print(goodsInfo.head())
# print(goodsInfo.tail())
print(goodsInfo.info())
# print(goodsInfo.describe())
print("商品名称显示: \n", goodsInfo['item_name'].head())
print("商品名称显示: \n", goodsInfo.item_name.head())


#
# 需求1:
#
#     3). 跟据商品的价格进行排序, 降序,
#     将价格最高的20件产品信息写入mosthighPrice.xlsx文件中;
# 重新赋值;
goodsInfo.item_price = goodsInfo.item_price.str.strip('$').astype(np.float)
highPriceData = goodsInfo.sort_values('item_price', ascending=False)
print(highPriceData.head(5))
filename = '/tmp/mostHighPrice.xlsx'
highPriceData.to_excel(filename)
print("保存成功.......")


#
# 需求2:
#     1). 统计列[item_name]中每种商品出现的频率,绘制柱状图
#             (购买次数最多的商品排名-绘制前5条记录)
goodsInfo = pd.read_csv('doc/chipo.csv')
# new_info会统计每个商品名出现的次数;其中 Unnamed: 0就是我们需要获取的商品出现频率;
newInfo = goodsInfo.groupby('item_name').count()
mostRaiseGoods = newInfo.sort_values('Unnamed: 0', ascending=False)['Unnamed: 0'].head(5)
# print(mostRaiseGoods, type(mostRaiseGoods))   # series对象;

# 获取对象中的商品名称;
x = mostRaiseGoods.index
# 获取商品出现的次数;
y = mostRaiseGoods.values

from  pyecharts import  Bar

bar = Bar("购买次数最多的商品排名")
bar.add("", x, y)
bar.render()









# 需求2:
#     2). 根据列 [odrder_id] 分组,求出每个订单花费的总金额======订单数量(quantity), 订单总价(item_price)。
#     3). 根据每笔订单的总金额和其商品的总数量画出散点图。


goodsInfo = pd.read_csv('doc/chipo.csv')
print(goodsInfo)
# 获取订单数量
quantity = goodsInfo.quantity
# 获取订单总价
item_price = goodsInfo.item_price \
    = goodsInfo.item_price.str.strip('$').astype(np.float)

# 根据列 [odrder_id] 分组
order_group = goodsInfo.groupby("order_id")
# 每笔订单的总金额
x = order_group.item_price.sum()
# 商品的总数量
y = order_group.quantity.sum()


from pyecharts import  EffectScatter
scatter = EffectScatter("每笔订单的总金额和其商品的总数量关系散点图")
scatter.add("", x, y)
scatter.render()

消费金额与小费之间的关联以及性别和吸烟与否的关系

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt


filename = 'doc/tips.csv'
data = pd.read_csv(filename)
# print(data.head())
# print(data.info())


# # 实现吸烟顾客消费金额与小费之间的散点图
# smoker = data[data['smoker'] == 'Yes']
# # print(smoker.head())
# x_total_bill = smoker['total_bill']
# y_tip = smoker['tip']
#
# from pyecharts import  Scatter
# scatter = Scatter("吸烟顾客消费金额与小费之间的散点图")
# scatter.add("", x_total_bill, y_tip)
# scatter.render()



# # 实现不吸烟顾客消费金额与小费之间的散点图
# no_smoker = data[data['smoker'] != 'Yes']
# # print(smoker.head())
# x_total_bill = no_smoker['total_bill']
# y_tip = no_smoker['tip']
#
# from pyecharts import  Scatter
# scatter = Scatter("不吸烟顾客消费金额与小费之间的散点图")
# scatter.add("", x_total_bill, y_tip)
# scatter.render()



# 女性中吸烟与不吸烟顾客的消费金额与小费之间的散点图关系;
# 1). 获取所有吸烟的用户信息
smoker = data[data['smoker'] == 'Yes']
# 2).从所有的吸烟用户中找出性别为女的用户信息;
female_smoker = smoker[smoker['sex']=='Female']


# 1). 获取所有不吸烟的用户信息
no_smoker = data[data['smoker'] != 'Yes']
# 2).从所有的吸烟用户中找出性别为女的用户信息;
female_no_smoker = no_smoker[no_smoker['sex']=='Female']
# 3). 绘制散点图
from pyecharts import  Scatter
scatter = Scatter("消费金额与小费之间的散点图")
scatter.add("吸烟女顾客", female_smoker['total_bill'], female_smoker['tip'])
scatter.add("不吸烟女顾客", female_no_smoker['total_bill'], female_no_smoker['tip'])

scatter.render()

电影前250分析统计

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt


filename = 'doc/special_top250.csv'
data = pd.read_csv(filename)
print(data.head())
# 获取电影时长
x_series = data.movie_duration
# 获取电影排名
y_series = data.num




from pyecharts import  Scatter
scatter = Scatter("散点图")
scatter.add("", x_series, y_series)
scatter.render()

猜你喜欢

转载自blog.csdn.net/qq_43279936/article/details/87971123
今日推荐