目录
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()