京东商城商品销售情况分析报告
报告说明
数据集说明
提出的问题
part 1 确定问题&获取数据
# 引入pandas库
inport pandas as pd
# 导入数据集
df = pd.read_csv('data.csv',encoding='utf-8')
# 查看数据的前五行
df.head()
# 查看数据集的列标签
df.columns
part 2 数据评估&数据清洗
# 查看数据集的行数和列数
df.shape
# 数据集的缺失值检查
df.info()
# 数据的整行重复检查
df.duplicated().sum()
# 数据清洗——删除无关列:axis=1删掉了一列
df.drop(['无关列1','无关列2',......,'无关列N'],axis=1,inplace=True)
# inplace参数的理解: 修改一个对象时:
# inplace=True:不创建新的对象,直接对原始对象进行修改;
# inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果。
# 添加新列销售额
df['sales'] = df['sales_num']*df['sales_price']
# 缺数据的处理:删除缺失值,按行删除
df.dropna(inplace=True)
# 重复数据的处理:删除重复数据,按行删除
df.drop_duplicates(inplace=True)
part 3 数据探讨&得出结论
# 各类目下商品的数量
df['type'].value_counts() -- 值计数
# 引入matplotlib中的pyplot绘图模块,绘制个商品数量的柱状图
import matplotlib.pyplot as plt
from pylab import mpl --解决中文字体显示不正常的问题
mpl.rcParams['font.sana-serif']=['simHei']
df.['type'].value_counts().plot(kind='bar',title='各类目的商品数量',color='red',alpha=0.5)
plt.xlabel('商品类目')
plt.ylabel('商品数量')
plt.show()
# 问题 1 各类目的商品销量 sort_values()降序排列
df['sales_num'].groupby(df['type']).sum().sort_values(ascending=False)
# 绘制商品销量柱状图
sales_num = df['sales_num'].groupby(df['type']).sum().sort_values(ascending=False)
sales_num.plot(kind='bar',title='各商品销量',color='red',alpha=0.5)
plt.xlabel('商品类目')
plt.ylabel('商品销量')
plt.show()
# 问题 2 在某个小分类下,商品的最低、最高、平均价是多少?具体的价格分布情况是怎样的?
# 把零食小分类下所有的商品信息筛选出来
df_lingshi=df[df['class_small']=='零食']
# 方法一:
df_lingshi['sale_price'].max() -- 最高价格
df_lingshi['sale_price'].min() -- 最低价格
df_lingshi['sale_price'].mean() -- 平均价格
# 方法二:count:计数 mean:平均值 std: 标准差 min:最小值 25%:第一四分位差 50%: 75% max:最大值
df_lingshi['sale_price'].describe()
# 绘制价格的直方图
df_lingshi['sale_price'].plot(kind='hist',title='零食的价格分布情况',color='red',alpha=0.5)
plt.xlabel('价格')
plt.ylabel('数量')
plt.show()
# 问题3 零食中的爆品是哪个?销量多少?价格多少
# 找到销量最大值的位置
index = df_lingshi['sales_num'].inxmax()
# 爆品的名称
df_lingshi['name'][index]
#爆品的销量
df_lingshi['sales_num'][index]
#爆品的价格
df_lingshi['sale_price'][index]
# 问题 4 在零食小分类下,销量和价格是否具有相关性
df_lingshi.plot(x='sale_price',y='sales_num',kind='scatter',title='零食的价格与销量之间的关系',color='red',alpha=0.5)
plt.xlabel('价格')
plt.ylabel('销量')
plt.show()