目录
youyiku分析案例(数分)
大框操作
1.销售情况随着时间的变化
2.不同产品的销量
柱状图(bar)改颜色+排序
seaborn库(柱)
--排序
3.每个城市的人喜欢的购物方式
4-不同年龄段的购物方式
添加标签段及值
--创建新表
对标签分别计算
绘图分析
youyiku分析案例(数分)

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False
df_data = pd.read_csv("../data/uniqlo.csv") 
大框操作
| --快速操作 | 描述 | 
|---|---|
| df_data.describe() | 对数据进行大体的计算. | 
| df_data.info() | 查看标签及数据类型. | 
| df_data.shape | 查看几行几列. | 
| df_data.head(10) | 读取几行数据. | 
1.销售情况随着时间的变化
# 1、销售情况随着时间的变化
# print(df_data.shape)
# df_data["wkd_ind"].unique()         #"wkd_ind"标签下的数据去重.--进行查看.
reven = df_data.groupby("wkd_ind")["revenue"].mean()    #分组操作,对wkd_ind标签进行分组,并展示revenue标签的平均值.
reven
plt.figure(figsize=(6,4),dpi=150)   #展开画布。
plt.bar(reven.index,reven.values)   #柱状图,直接传宽(标签名)和高(对应值)。
plt.show() 

df_data.groupby("wkd_ind").revenue.describe()   #分组后,对revenue标签进行大体计算。 
 
2.不同产品的销量
# 2、不同产品的销量
df_data["product"].unique()     #对标签product进行去重--查看.
types = df_data.groupby("product").revenue.describe()       #对produce进行分组,对revenue进行大体计算.
# types
plt.figure(figsize=(6,5),dpi=150)
plt.bar(types.index, types["mean"])         #这里的高只获取大体计算时的平均值.
plt.show() 

柱状图(bar)改颜色+排序
types = df_data.groupby("product").revenue.mean().sort_values(ascending=False)      #.sort_values(ascending=False)进行排序.(默认是True,升序)
# types
plt.figure(figsize=(6,5),dpi=150)
plt.bar(types.index,types.values,color=["red","orange","green","yellow"])   #指定柱状图(bar)的颜色.(随机.)
plt.show() 

seaborn库(柱)
# pip install seaborn import seaborn as sns #基于matplotlib,有些操作会简单点. plt.figure(figsize=(6,4),dpi=150) sns.barplot(x="product",y="revenue",data=df_data) #分别设置x,y轴的标签名,并给出数据从哪来的(data=) #默认是取平均值. plt.show()

--排序
plt.figure(figsize=(6,4),dpi=150)
sns.barplot(x="product",y="revenue",data=df_data,order=df_data.groupby("product").revenue.mean().sort_values(ascending=False).index      #这里排完序后,获取的是对象,我们直接按照标签排就可以了(.index)
) 

3.每个城市的人喜欢的购物方式
df_data.head() df_data["channel"].unique() df_data['city'].unique()  df_data.groupby(["city","channel"]).revenue.mean()
plt.figure(figsize=(6,4),dpi=150)
sns.barplot(x="city",y="revenue",data=df_data,hue="channel",      #图例.estimator=sum,      #参数默认求平均值,这参数自己改.order=df_data.groupby("city").revenue.sum().sort_values(ascending=False).index    #排序,按sum.
)
plt.show() 

4-不同年龄段的购物方式
plt.figure(figsize=(6,4),dpi=150)
sns.barplot(x="age_group",y="revenue",hue="channel",data=df_data,order=df_data.groupby("age_group").revenue.sum().sort_values(ascending=False).index
)
plt.show() 

添加标签段及值
df_data.head() #无--->在最后字段进行添加; 有---->进行修改. df_data["price"] = df_data["revenue"] / df_data["quant"] df_data["margin"] = (df_data["revenue"] / df_data["quant"]) - df_data["unit_cost"] df_data.head()
--创建新表
--上面我们创建了新的字段,现在我们就可以创建新的二维对象.
df_data_new = pd.DataFrame({"城市":df_data["city"],"品牌":df_data["product"],"利润":df_data["margin"],"成本":df_data["unit_cost"],"单价":df_data["price"]
})
df_data_new 
对标签分别计算
分组+标签分别计算
datas = df_data_new.groupby("城市")["利润","成本","单价"].mean()
datas 
绘图分析
plt.figure(figsize=(7,5),dpi=150) width = 0.2 #柱的宽度.(下面都要传参) x = np.arange(len(datas.index)) #传x轴的坐标.(看下面) --- x轴有多少个值,先弄出来. plt.bar(x,datas["利润"],width=width,label="利润",color="red") plt.bar(x+width,datas["成本"],width=width,label="成本",color="green") plt.bar(x+width*2,datas["单价"],width=width,label="单价",color="orange") # 这里每个柱x轴都要偏移一下,更美观.(柱的间隔) plt.xticks(x+width,labels=datas.index) #x轴标签名的间隔. plt.legend() plt.show()
