#导入第三方库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime
import warnings
import re
from datetime import datetime
from pyecharts.charts import Bar,Line,Map,Page,Pie
from pyecharts import options as opts
from pyecharts.globals import SymbolType
#直接显示图形
%matplotlib inline
#设置中文编码和负号的正常显示
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
warnings.filterwarnings('ignore')
1 数据导入,清洗
1 数据导入,清洗
df=pd.read_csv(r'D:\搜狗高速下载\电子产品销售分析.csv',engine='python',encoding='UTF-8')
df.head()
字段介绍:
Unnamed: 行号
event_time:下单时间
order_id:订单编号
product_id:产品标号
category_id :类别编号
category_code :类别
brand :品牌
price :价格
user_id :用户编号
age :年龄
sex :性别
local:省份
1.1查看数据重复情况
df.duplicated().sum()
结果确认数据无重复
1.2查看数据缺失情况
df.isnull().sum()/len(df)
df.isnull().sum()
有两列中有数据缺失值,类别列缺失129370条,品牌列缺失27224条,这两列数值缺失对店铺销售情况的分析和用户消费行为的分析没主要影响,但是其他数据有重要影响,所以这两列缺失值由missing填充。
df.fillna('missing',inplace=True) df.isnull().sum()
1.3产看数据整体状况
df.info()
将event_time转换为时间格式
df['event_time']=pd.to_datetime(df['event_time'])
df.dtypes
1.4数据拆分
df['Month']=df['event_time'].dt.month
df['Day']=df['event_time'].dt.day
df['Dayofweek']=df['event_time'].dt.dayofweek
df['Hour']=df['event_time'].dt.hour
df.head()
2 探索性数据分析
2.1 每月销售金额
# 创建画布
plt.figure(figsize=(6,3))
df[df['price']>0].groupby('Month')['price'].sum().plot()
plt.title('每月销售金额')
plt.xlabel('月份')
plt.ylabel('销售额')
plt.xticks(list(np.arange(14)))
#添加网格线
plt.grid(linestyle='dashed')
plt.show()