数据分析案例--学生用户消费分析

1.导入相关python包import pandas as pdimport numpy as npimport matplotlib.pyplot as plt%matplotlib inlinefrom datetime import datetimeplt.style.use('ggplot')df=pd.read_csv(r'H:\阿里云\py学生用户消费分析\7_con...
摘要由CSDN通过智能技术生成

1.导入相关python包

import pandas as pd
import numpy as  np
import matplotlib.pyplot as plt
%matplotlib inline
from datetime import datetime

plt.style.use('ggplot')
df=pd.read_csv(r'H:\阿里云\py学生用户消费分析\7_consumption.csv')

2.查看文件内容
在这里插入图片描述

# 数据一共有交易时间、消费金额、学生ID、学生姓名、性别五个字段。
# 观察数据,DealTime表示交易时间,但是它具体到了分秒,反而显得数据量太过冗余,颗粒度太小难以进一步分析。
# 所以接下来我们可以把交易时间统一为日期。
# 然后通过pandas数据透视表将同一日期的多次交易汇总为一次交易总额及当日交易量。

3.查看文件的数据类型

df.info()

在这里插入图片描述
这里我们看见DealTime时间数据类型是object我们来修改为datetime64类型

df['DealTime']=pd.to_datetime(df['DatlTime'])
df.head()

在这里插入图片描述
这样呢,时间数据类型就修改完成了
不修改输出如下命令会报错

df['DealTime'] = df['DealTime'].dt.strftime('%Y-%m-%d')
df.head(2)

在这里插入图片描述
下面我们整理一下时间这个数据

df['DealTime']=df['DealTime'].dt.strftime('%Y-%m-%d')
df.head()

在这里插入图片描述
可以看出时间已经修改完成了
4.查询后10行数据

df.tail(10)

在这里插入图片描述
5.查看一下相关性,平均数,方差什么的

df.describe()

在这里插入图片描述

  • 共有46万条消费交易数据。
  • 平均每位学生每单消费8.4元,最大消费是404元。一位同学一天之中一次消费404。
  • 中位数是8.0,四分位数是10.9,说明大部分同学消费金额都不高,大部分集中在小额消费。
  • 另外,同一位同学在同一天可能有多笔消费记录。所以接下来用数据透视表看看。
    6.看一下学生们一共消费了多少天
# unique函数可以查看某列总共有多少种取值:df['DealTime'].unique()
# value_count函数可以统计各不同取值的计数。
DealTime_counts = df['DealTime'].value_counts()
print("\n",DealTime_counts.shape)
print("\n")
print(DealTime_counts.head(6))
print("\n")
print(DealTime_counts.tail(6))

在这里插入图片描述

  • 总共有161天的学生消费数据,交易量最大集中在2018.9-2018.11,刚好是开学第一学期期间。
  • 如果可以按照日期排序看看时间区间,也是一个技能,暂时搁置先。
  • 不过从之前的数据查看来看,时间区间是在2018年7月至2019年1月之间。
    7.查看每个学生,每天消费的信息,消费次数,金额,平均金额。
# 透视表方法一:groupby
df1=df.groupby(['DealTime',"bf_StudentID","AccName","PerSex"])["MonDeal"].agg(["sum","mean","count"])
df1.head(30)
# 对比了方法二pivot_table,明显感觉这次groupby方法处理速度更快啊,起码省一半时间。

在这里插入图片描述

# 透视表方法二:pivot_table
df2=pd.pivot_table(df,index=["DealTime","bf_StudentID","AccName","PerSex"],values=["MonDeal"],aggfunc=[sum,np.mean,len])
df2.head(12)
# len 表示计数,即,len=2 则代表该同学在当天消费了两笔。

在这里插入图片描述
7.查看df1的相关性分析

df1.describe
  • 1
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值