三、使用python处理数据
1、连接MySQL数据库,得到数据源:
获取数据
import pandas as pd,sqlalchemy as sq
engine=sq.create_engine('mysql+pymysql://用户名:密码@主机IP:3306/数据库名称')
sql='select * from dw_customer_order'
df=pd.read_sql(sql,engine)
df.head()
预览数据
#取消科学计数
pd.set_option('display.float_format',lambda x:'%.2f' % x)
#预览数据
df.info()
取出2019.1-11月数据
# 转化时期格式
df['create_date']=pd.to_datetime(df.create_date,format='%Y-%m-%d')
#新增月份字段
df['month']=df.create_date.values.astype('datetime64[M]')
#取出2019.1-11月数据,类目是自行车的数据
df=df[df.month" />
2、整体销售情况
df2=df.groupby('month').sum()[['order_num','sum_amount']]
df2=df2.reset_index()
df2
#计算销量环比和金额环比
df2[['num_diff','amount_diff']]=df2[['order_num','sum_amount']].apply(lambda x:x.diff()/x.shift()).fillna(0)
g_month=df2
g_month这里得到第一张表【g_month】
3 场:地区分析
df3=df[(df.month>='2019-10-01')& (df.month
df3=df3.groupby(['chinese_territory','month']).sum().reset_index()
df3
# 各地区10-11月销量及环比
g_diqu_num=pd.pivot_table(df3,
index='chinese_territory',
columns='month',
values='order_num',
aggfunc=sum)
g_diqu_num=g_diqu_num.reset_index()
g_diqu_num['num_diff']=(g_diqu_num.diff(axis=1)/g_diqu_num.shift(axis=1)).iloc[:,-1]
g_diqu_num
# 各地区10-11月金额及环比
g_diqu_sum=pd.pivot_table(df3,
index='chinese_territory',
columns='month',
values='sum_amount',
aggfunc=sum)
g_diqu_sum=g_diqu_sum.reset_index()
g_diqu_sum['sum_diff']=(g_diqu_sum.diff(axis=1)/g_diqu_sum.shift(axis=1)).iloc[:,-1]<