1.导入包
# 导入包
# 设置中文字体
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
2.读取数据
# 读取excel的数据
# 查看数据的情况(几行几列)
df = pd.read_excel('商城分析_tableau.xlsx')
df.shape
3.查看表的类型
# 查看列的名字,不为null的数据有几条,列的类型
df.info()
4.修改订单金额这列的类型为int
df['订单金额'] = df['订单金额'].astype(int)
4.1 查看数据类型是否修改成功
df.info()
如图所示修改成:
5.增加year()辅助列
df['year'] = df['订单创建日期'].apply(lambda x: x.year)
5.1随机查看10条数据
df.sample(10)
成功增加辅助列
5.2年度销售情况
# 年度销售情况
year_data = df.groupby('year').sum()['订单金额']
plt.figure(figsize=(4,3), dpi=128)
year_data.plot(kind='bar')
for a, b in enumerate(year_data):
plt.text(a, b, b, va='bottom', ha='center')
显示结果:
6.增加月辅助列,随机显示10条数据
df['month'] = df['订单创建日期'].apply(lambda x: x.month)
df.sample(10)
显示结果:
6.1月度销售情况分析
# 月度销售情况
import seaborn as sns
month_data = df.groupby(['year','month']).sum()['订单金额'].reset_index()
month_data
plt.figure(figsize=(4,3), dpi=128)
sns.barplot(x='month', y='订单金额', hue='year', data=month_data)
plt.title('月度销售情况')
plt.xticks(range(1, 13, 1), rotation=90)
plt.legend(loc=2)
显示结果:
7.增加日这个辅助列,随机显示10条数据
df['day'] = df['订单创建日期'].apply(lambda x: x.day)
df.sample(10)
7.1日销售情况分析
# 日销售情况
day_data = df.groupby(['day']).sum()['订单金额'].reset_index()
day_data
plt.figure(figsize=(4,3), dpi=128)
sns.barplot(x='day', y='订单金额', data=day_data)
plt.title('日销售情况')
plt.xticks(rotation=90)
8.增加hour辅助列,随机显示10条数据
df['hour'] = df['订单创建时间'].apply(lambda x: int(str(x).split(':')[0]))
df.sample(10)
显示结果:
8.1各时间段的下单量分析
# 各时间段的下单量
hour_data = df.groupby('hour').count()[
'day'].reset_index().rename(columns={'day': 'order_num'})
plt.figure(figsize=(4,3), dpi=128)
sns.barplot(x='hour', y='order_num', data=hour_data)
plt.title('各时间段下单量')
plt.xticks(rotation=30)
显示结果:
9.各省销售额分析
provice_data = df.groupby('省份').sum()['订单金额'].reset_index()
plt.figure(figsize=(4,3), dpi=128)
sns.barplot(x='省份', y='订单金额', data=provice_data)
plt.title('各省销售情况')
plt.xticks(rotation=90)
显示结果: