第一部分:数据类型处理
数据加载
字段含义:
user_id:用户ID
order_dt:购买日期
order_product:购买产品的数量
order_amount:购买金额
观察数据
查看数据的数据类型
数据中是否存储在缺失值
将order_dt转换成时间类型
查看数据的统计描述
计算所有用户购买商品的平均数量
计算所有用户购买商品的平均花费
在源数据中添加一列表示月份
import pandas as pd
from pandas import DataFrame,Series
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
1.1、数据加载
字段含义:
user_id:用户ID
order_dt:购买日期
order_product:购买产品的数量
order_amount:购买金额
df = pd.read_csv('./data/CDNOW_master.txt',header=None,sep='\s+',names=['user_id','order_dt','order_product','order_amount'])
df.head()
1.2、查看数据类型
查看数据的数据类型,数据中是否存储在缺失值
df.info()
>>>
RangeIndex: 69659 entries, 0 to 69658
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 user_id 69659 non-null int64
1 order_dt 69659 non-null int64
2 order_product 69659 non-null int64
3 order_amount 69659 non-null float64
dtypes: float64(1), int64(3)
memory usage: 2.1 MB
将order_dt转换成时间类型
df['order_dt'] = pd.to_datetime(df['order_dt'],format='%Y%m%d')
df.head()
查看数据的统计描述
计算所有用户购买商品的平均数量
计算所有用户购买商品的平均花费
df.describe()
在源数据中添加一列表示月份
df['month'] = df['order_dt'].astype('datetime64[M]')
第二部分:按月数据分析
用户每月花费的总金额
绘制曲线图展示
所有用户每月的产品购买量
所有用户每月的消费总次数
统计每月的消费人数
用户每月花费的总金额
month_amt_s = df.groupby(by='month')['order_amount'].sum()
>>>
month
1997-01-01 299060.17
1997-02-01 379590.03
1997-03-01 393155.27
1997-04-01 142824.49
1997-05-01 107933.30
1997-06-01 108395.87
1997-07-01 122078.88
1997-08-01 88367.69
1997-09-01 81948.80
1997-10-01 89780.77
1997-11-01 115448.64
1997-12-01 95577.35
1998-01-01 76756.78
1998-02-01 77096.96
1998-03-01 108970.15
1998-04-01 66231.52
1998-05-01 70989.66
1998-06-01 76109.30
Name: order_amount, dtype: float64
绘制曲线图展示
plt.figure(figsize=(8,5))
plt.plot(month_amt_s.index,month_amt_s.values)
#或df.groupby(by='month')['order_amount'].sum().plot()